开网站赚50万做,网站怎么做看起来好看,青浦网站建设,开发网站网络公司有哪些目录
三目运算符
逗号运算符
自增自减运算符
位运算
运算符优先级
补码讲解
整型解析
溢出解析
浮点数IEEE754标准解析
浮点数精度丢失
真题
汇编指令
生成汇编方法
常用指令 三目运算符
条件运算符是C语言中唯一的三目运算符。通过判断问号之前的表达式的真假来确定整体表达式的值。
result(condition)?a:b;
condition为true时resulta为false时resultb。
条件运算符高于赋值运算符。 逗号运算符
逗号运算符的优先级最低。逗号表达式的整体值是最后一个表达式的值。
eg:if(i,j-1)//并不会进入if内逗号表达式整体的值是(j-1)。 自增自减运算符
其它运算符除了赋值运算符外都不可以改变变量本身的值。而自增自减保留自B语言的习惯。
i;先加再使用i。
i--;先使用i再减。
j*p;等价于j*p;p;
jp[0];等价于jp[0];p[0]; 位运算
左移。高位丢弃低位补0相当于乘以2。
右移。低位丢弃正数高位补0负数高位补1相当于除以2。位移比乘法和除法的效率更高对于负偶数右移是除以2但对于负奇数右移是先减1再除以2。eg-71得到-4。-1无论右移多少位值永远是-1。
C语言的左移和右移相当于算术左移和算术右移。考研中的逻辑左移和右移都是再空位都补0。
按位取反~。数位上的1变成00变成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
常用指令