一、首先介绍整型家族:int 家族 char 家族
加入char家族,是因为字符类型在存储的时候,会转化为ASC II码值进行存储。
二、介绍二进制:在存储中,数据用二进制进行存储。
比如:
正数 5 。二进制码为101。整型类型为32比特位,
则为00000000 00000000 00000000 00000101
负数 -5 。整型类型为32比特位,则为10000000 00000000 00000000 00000101(只需将第一个符号位0改为1)
三、介绍原码 反码 补码
符号位:32比特位的第一个位置(最高位),称作符号位。正数为0,负数为1 (比如5 和 -5)
原码:将数写成二进制的形式 (比如5 和 -5)
反码:符号位不变,其他位置取反。0变1,1变0。
正数 原码 反码 补码 相同!!!都是原码!!!
5的反码就是原码
-5的反码11111111 11111111 11111111 11111010
补码:反码+1得补码
-5的补码11111111 11111111 11111111 11111011
四、存储
整形数据以补码进行存储。
-5存储时,将11111111 11111111 11111111 11111011存储。
5存储时,将00000000 00000000 00000000 00000101存储。
总结:原 取反 得到 反 反 +1得到 补
需要注意的是,整形数据在进行运算时,也是将补码进行运算(按位与 右移……)
打印时,打印原码。