1.原码 反码 补码
原码,反码,补码是计算机中整数的二进制的三种表示方式;
二进制是由1和0组成的;
在二进制中符号位表示整数的正负(红色框中为符号位)
符号位为0是整数,符号位为1是负数
正数的原、反、补码都相同
负数
原码:照正负数的形式翻译成二进制
反码:符号位不变按位取反
补码:反码+1
对于整型:内存中存储的是数据的补码
int暂用4个字节 = 32个bit
内存中会将二进制转换为十六进制 每4个bit=一个十六进制位;
2.大小端
转换为十六进制后,可以看到a为:00 00 a
内存中地址是由低到高
而a的数据是由低到高存储的
由此可见,数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。
而大小端是
小端是数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中
大端是数据的低位保存在内存的高地址中,而数据的高位,,保存在内存的低地址中
可以发现在vs2022编辑器中为 小端
如何判断大小端,除了看内存监视窗口还可以写代码进行判断
a = 1 (00000000 00000000 00000000 00000001) 转换为十六进制 00 00 00 01
根据大小端的规则,判断第一个字节为01,还是为00
小端是数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中
大端是数据的低位保存在内存的高地址中,而数据的高位,,保存在内存的低地址中