C
初级猿人
这个作者很懒,什么都没留下…
展开
-
字节对齐规则
四个重要的基本概念。1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,其自身对齐值为4,double为8单位字节。2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。3.指定对齐值:#pragma pack (value)时的指定对齐值value。4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。...原创 2020-01-23 00:10:59 · 453 阅读 · 0 评论 -
while,do..whlie和for循环
循环指令结构说明whilewhile(表达式){语句;}计算while后面括号里表达式的值,若其结果非0,则执行循环,否则不执行do…whiledo{语句;}while(表达式);先执行一次语句,然后计算while后面括号里表达式的值,若其结果非0,则执行循环,否则不执行forfor(表达式1;表达式2;表达式3) 或 for( ; ; )for循环主...原创 2020-01-15 18:34:04 · 272 阅读 · 0 评论 -
三目运算符和语句执行条件
单目运算符:单目运算符是指运算所需变量为一个的运算符,即在运算当中只有一个操作数,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符:~、自增自减运算符:++, --等。//i++void Function(){ int a = 0; int b = a++; printf("%d %d",a,b);}//0040B518 mov dword ptr [e...原创 2020-01-12 23:47:54 · 550 阅读 · 0 评论 -
逻辑运算符
1原创 2020-01-12 12:57:15 · 159 阅读 · 0 评论 -
关系运算符
关系运算符的运算结果只有0和1关系运算符含义==等于(a==b)!=不等于(a!=b)>=大于等于(a>=b)<=小于等于(a<=b)>大于(a>b)<小于(a<b)set指令:功能: 若条件(标志位的值)成立,则字节寄存器reg8或字节存储器单元被设置为1,否则被设置为0.条件...原创 2020-01-12 01:59:08 · 2589 阅读 · 0 评论 -
MOVSX符号扩展传送和MOVZX零扩展传送
命令解释movzx将用0来扩展填充操作数A的余下空间。操作数B空间必须小于操作数A;如, mov al,0xFF movzx ecx,al 执行后ecx结果为000000FFmovsx将用操作数B的符号位扩展填充操作数A的余下空间,如果是负数则符号位为1,如果是正数则和MOVZX功能相同,操作数B空间必须小于操作数A; 如: mov al,0xFF movsx ...原创 2020-01-11 21:03:47 · 974 阅读 · 0 评论 -
选择排序和冒泡排序
排序方式操作过程冒泡排序比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。选择排序对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用...原创 2020-01-10 23:18:09 · 70 阅读 · 0 评论 -
C语言浮点型存储到内存
将一个float型转化为内存存储格式的步骤为:①.将这个实数的绝对值转化为二进制,转化方法如下:例如11.25表示为二进制数先将整数部分转为二进制 11/2=5 余1 5/2=2 余1 2/2=1 余0 1/2 余1 0结束 11的二进制表示为(从下往上):1011小数部分转化为二进制:用小数部分乘以2,乘到小数部分为0或者到精确位数为止. 0.2...原创 2020-01-10 01:10:02 · 355 阅读 · 0 评论 -
VC标志位含义
VC格式OVUPEIPLZRACPECYFLAGS位OFDFIFSFZFAFPFCF含义溢出方向中断允许符号为零辅助进位奇偶进位原创 2020-01-09 14:25:03 · 407 阅读 · 0 评论 -
JCC
JCC指令含义检查符号C含义JZ/JE结果若为0则跳转,若相等则跳转ZF=1if(i == j);if(i = 0);JNZ/JNE若不为0则跳转;若不相等则跳转ZF=0if(i != j);if(i != 0);JS若为负则跳转SF=1if (i < 0);JNS若为正则跳转SF=0if (i > 0);JP/J...原创 2020-01-09 01:11:44 · 271 阅读 · 0 评论