3/13/24运算符、补码、整型、浮点型、汇编

目录

三目运算符

逗号运算符

自增自减运算符

位运算

运算符优先级

补码讲解

整型解析

溢出解析

浮点数IEEE754标准解析

浮点数精度丢失

真题

汇编指令

生成汇编方法

常用指令


三目运算符

条件运算符是C语言中唯一的三目运算符。通过判断问号之前的表达式的真假,来确定整体表达式的值。

result=(condition)?a:b;

condition为true时,result=a;为false时,result=b。

条件运算符高于赋值运算符。

逗号运算符

逗号运算符的优先级最低。逗号表达式的整体值是最后一个表达式的值

eg:if(i,j-1)//并不会进入if内,逗号表达式整体的值是(j-1)。

自增自减运算符

其它运算符除了赋值运算符外都不可以改变变量本身的值。而自增自减保留自B语言的习惯。

++i;先加再使用i。

i--;先使用i,再减。

j=*p++;等价于j=*p;p++;

j=p[0]++;等价于j=p[0];p[0]++;

位运算

左移:<<。高位丢弃,低位补0,相当于乘以2。

右移:>>。低位丢弃,正数高位补0,负数高位补1,相当于除以2。位移比乘法和除法的效率更高,对于负偶数右移是除以2,但对于负奇数右移是先减1再除以2。eg:-7>>1得到-4。-1无论右移多少位,值永远是-1。

C语言的左移和右移相当于算术左移和算术右移。考研中的逻辑左移和右移都是再空位都补0。

按位取反:~。数位上的1变成0,0变成1。

按位或:|。用两个数的每一位进行或,有1为1。

按位与:&。用两个数的每一位进行与,有0则0。

按位异或:^。同0异1。相同的数进行异或时,结果是0,任何数和0异或的结果是其本身。

位运算符只能对整型数据进行操作,位运算自身不会改变。

运算符优先级

补码讲解

计算机的CPU实际上是无法做减法操作的(硬件上没有减法器),只能做加法。

原码即值本身。

补码=原码按位取反后+1。用正数的补码表示负数。负数的原码就是正数的原码。

原码=补码-1后按位取反。先取反后+1也可以。

x86架构是小端存储,小端存储时低字节在前,即低字节再低地址。大端相反。是单字节颠倒,即8bit。

而在考研中,补码的符号位不变,即原码取反时最高位不变。正数的补码和原码一致。

反码:正数的反码和原码一样。负数的反码就是在原码的基础上,符号位不变,其它位不变。

整型解析

无符号数存储:2^n-1

有符号数存储:2^(n-1)-1

最小负数:1000 0000 0000 0000 -32768 补码。原码是本身。

溢出解析

#include <stdio.h>//整型不同类型的演示,以及溢出演示
int main() {int i = 10;short a = 32767;short b = 0;long c;//32位的程序是4个字节,64位的是8个字节b = a + 1;//发生了溢出,解决溢出的办法是用更大的空间i来存printf("%d\n", b);//b并不是32768,而是-32768printf("------------\n");unsigned int m = 3;unsigned short n = 0x8056;//无符号类型,最高位不认为是符号位unsigned long k = 5;b = 0x8056;printf("b=%d\n", b);//b是有符号类型,所以输出是负值printf("n=%u\n", n);//无符号类型要用%u,用%d是不规范的return 0;return 0;
}

浮点数IEEE754标准解析

浮点数精度丢失

真题

汇编指令

生成汇编方法

在环境变量中配置Path:G:\mingw64\bin

执行程序后,在终端中输入指令即可生成汇编文件。

gcc -S -fverbose-asm main.c

常用指令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/741887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【随笔记】小程序轮播图,一屏显示三个swiper-item

常见的轮播是一屏显示一个swiper-item,有的时候需要一屏显示三个swiper-item,左右两边都显示出一点 【目前小程序基础库2.12.3 效果正常,3.几的效果会有点不正常】 效果图 wxml <!-- 轮播begin --> <swiper wx:if="{{up_down}}" class="card-swipe…

【C++】thread 头文件无法正常使用问题

问题 当我使用MinGW GCC&#xff0c;在windows上编写C程序的时候&#xff0c;使用thread类会无法编译&#xff0c;有如下错误&#xff1a; 我使用的是c17 这个问题原因是MinGW GCC当前仍缺少标准C 11 及以上版本线程类的实现。 解决方案 Stackoverflow上的类似问题: 传送门…

a-table:实现跨域多选功能——基础积累

table组件跨页多选功能&#xff1a; html部分的代码&#xff1a; <a-tablesize"small"style"margin-top: 10px"rowKey"id":columns"columns":dataSource"dataSource":pagination"pagination":loading"l…

零基础自学C语言|自定义类型:联合与枚举

✈联合体 &#x1f680;联合体的类型声明 像结构体一样&#xff0c;联合体也是由一个或者多个成员构成&#xff0c;这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫&#xff1a;共用体。 给…

机试:计算第几天

问题描述: 代码示例: //计算第几天 #include <bits/stdc.h> using namespace std;int main(){cout << "输入样例" << endl; int year;int month;int day; cin >> year >> month >> day;int months1[12] {31,28,31,30,31,30,3…

Java错误:微服务报错Cannot execute request on any known serve

&#x1f414;问题内容 报Cannot execute request on any known server 这个错&#xff1a;连接Eureka服务端地址不对。 &#x1f414;解决方式 检查.yml文件或者.properties文件配置 下划线下划线后面的小写字母等同于去掉下划线大写下划线后面的字母&#xff08;驼峰原则&am…

ATFX:美国2月未季调核心CPI年率录得3.8%,低于前值0.1个百分点

ATFX汇市&#xff1a;据美国劳工部数据&#xff0c;美国2月未季调核心CPI年率&#xff0c;最新值3.8%&#xff0c;前值为3.9%&#xff0c;预期值3.7%&#xff0c;最新值低于前值0.1个百分点&#xff0c;意味着高通胀问题正在逐步缓解&#xff0c;最新值高于预期值&#xff0c;意…

Spring启动“--”设置参数没生效

现象 在idea中启动SpringBoot项目时&#xff0c;使用“--”设置的启动参数没有生效&#xff0c;如修改端口号“--server.port8082” 原因 排查发现是因为在使用SpringApplication.run启动项目时&#xff0c;没有将args参数传入run方法。 修复方案 SpringApplication.run参数中…

自动化运维工具 ---------------Ansible

一、Ansible 发展史及功能 作者&#xff1a;Michael DeHaan&#xff08; Cobbler pxe kikstar 与 Func 作者&#xff09;ansible 的名称来自科幻小说《安德的游戏》中跨越时空的即时通信工具&#xff0c;使用它可以在相距数光年的距离&#xff0c;远程实时控制前线的舰队战斗2…

(Linux学习八)进程下,虚拟文件系统proc

一、进程 foreground fg :前台进程&#xff0c;是在终端中运行的命令&#xff0c;占领终端。 background bg &#xff1a;后台进程:没有控制终端&#xff0c;它不需要终端的交互。看不见&#xff0c;但是在运行 & //后台运行程序 jobs //查看进程 kill %1 //消灭后台进…

51WORLD正式落地中东,助力沙特伙伴与客户数字化升级!

近日&#xff0c;在被誉为中东“数字达沃斯”的LEAP科技展上&#xff0c;51WORLD首次震撼亮相Digital Twin Riyadh2924k㎡ 全要素城市底座、数字地球平台51Earth&#xff0c;向中东及全球科技从业者展现中国企业技术实力与创新能力。此外&#xff0c;以LEAP为起点&#xff0c;5…

Elastic Stack--04--ES中的检索方式、Query DSL

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.ES中的检索方式第一种方式GET bank/_search # 检索bank下的所有信息&#xff0c;包括 type 和 docsGET bank/_search?q*&sortaccount_number:asc 第二种方式…

Windows从0到1部署项目

文章目录 1.创建虚拟机2.文件的传输--共享文件夹共享文件夹的访问 3.安装jdk&#xff0c;Tomcat3.1jdk的安装与配置配置环境变量 3.2Tomcat的安装与配置 4.安装mysql数据库5.下载nginx6.虚拟域名 因为Windows项目部署有很多操作都是博主之前做过的了&#xff0c;所及就只放了博…

OpenCASCADE开发指南<四>:OCC 数据类型和句柄

一个软件首先要规定能处理的数据类型&#xff0c; 其次要实现三项最基本的功能——引用管理、内存管理和异常管理。在 OCC 中&#xff0c;这三项功能分别对应基础类中的句柄、内存管理器和异常类。 1 数据类型 在基本概念篇里&#xff0c;已经介绍了 OCC 数据类型的分类&…

Mysql 学习(十七)事务隔离级别和MVCC

前提准备 首先创建一个表&#xff1a; CREATE TABLE hero (number INT,name VARCHAR(100),country varchar(100),PRIMARY KEY (number) ) EngineInnoDB CHARSETutf8;INSERT INTO hero VALUES(1, 刘备, 蜀);事务隔离级别 mysql 是一个 客户端 和 服务器架构的软件&#xff0c…

【数据结构】详解线性表的各个函数接口+OJ习题讲解(画图比写代码更重要!!!)

文章目录 一、线性表二、顺序表1、什么是顺序表2、顺序表的分类 三、动态顺序表的实现1、结构的定义2、顺序表的初始化3、检查容量4、在头部插入数据5、在尾部插入数据6、在指定位置插入数据7、在尾部删除数据8、在头部删除数据9、删除指定位置的数据10、查找数据11、修改指定位…

ThreeJs制作模型图片

这个标题名字可能有歧义&#xff0c;只是不知道如何更好的表达&#xff0c;总之就是将图片的像素转换成3D场景的模型&#xff0c;并设置这个模型的颜色&#xff0c;放到像素点对应的位置从而拼接成一个图片&#xff0c;起因是上文中用js分解了音乐&#xff0c;实现了模型跳动效…

互联网行业的应届大学生,如何制作高水平简历?

雇主通常只会花大约25秒的时间浏览一份简历,因此,拥有一份出色的简历对于找到理想工作至关重要。如果您的简历没有令人印象深刻的特点,那么如何才能在竞争激烈的求职市场中脱颖而出呢? 如果您不知道如何在简历上有效地展示自己,或者觉得简历无论怎么修改都不够突出,那么请…

安装、配置MySQL

安装相关软件 MySQL Server、MySQL Workbench MySQL Server&#xff1a;专门用来提供数据存储和服务的软件 MySQL Workbench&#xff1a;可视化的 MySQL 管理工具 官网安装 https://www.mysql.com/ 官网 MySQL :: Download MySQL Installer 安装包路径 在这里选择版本和和对应…

多图如何导入多个二维码?图片批量导出二维码的技巧

多个图片分别生成对应的二维码怎么做&#xff1f;现在扫码看图片是一种很常用的内容预览方式&#xff0c;有些产品包装也会采用这种方式来展示对应的信息&#xff0c;怎么简单快速的将图片生成二维码&#xff0c;相信有很多的小伙伴都非常的感兴趣。那么小编通过下面这篇文章来…