整型数据在内存当中的存放形式

整型数据在内存中以二进制补码形式进行存储,n位二进制补码的计算公式为:[x]补=2n+x

如:[-1]补=28+(-1)=255=1 111 1111B

二进制减法口算方法:n个二进制1组成,即:,因此,比该数略小的数只须将若干相应位权的1改为0即可。如,

250=(2^8-1)-5=1111 1111B-101B=1111 1010B

二进制加法口算方法:11n0构成的二进制数组成,即:,因此,比该数略大的数只须将若干相应位权的0改为1即可。如,

16若干倍的数可先转换成十六进制数再转换成二进制数,如

176=11*16+0=0B0H=0xB0=10110000B

161=10*16+1=0A1H=0xA1=10100001B

正数求补码的方法:符号位为0,数值转换为n-1位二进制数得原码;正数反码和补码同原码。

负数求补码的方法:符号位为1,数值转换为n-1位二进制数得原码;将原码数值位取反得到反码,再将反码数值未位加1得补码。由此可见,对于负数,同一个数的原码、反码、补码是不同的。如求1补码的步骤如下:


补码符号位扩展压缩数值不变(高位增减符号值不变),如

[-1]补=1 111 1111B=1111 1111 1111 1111B

[+1]补=0 000 0001B=0000 0000 0000 0001B

你可能感兴趣的:(C/C++)