一、原码、反码、补码

整型在内存中占4个字节,也就是32个比特位,在内存中第一位是符号位,后面31位是其大小,符号位是0为正数,符号位是1为负数。

当是正数是,该数值的原码、反码、补码相同。
当是负数时,反码是符号位不变,其他按位取反,再+1以补码方式存储。

二、大小端

大端就是数据的低位放在高地址,高位放在低地址。
小端就是数据的低位放在低地址,高位放在高地址。

注意是以字节为单位的排序,不是比特位。

三、整型提升和截断

截断:
当你的数值放入内存时开辟的空间不够就需要截断,比如一个int型的数值占32位,你放入char类型开辟的空间后,那么只会保留数值低位的8位。

整型提升:
整型提升分为有符号和无符号两种,有符号的:整型提升时是按照变量的补码被截断时的最高位是什么进行补位的,如果截断后最高位即最左面的一位数为 1 则在最高位前补 1 ,如果最高位是 0 则在前面补 0 ,补够32位即int类型即可。 无符号的: 直接在被截断的前面补 0 即可。


Hhh_灏
24 声望3 粉丝