计算机基础-补码

原码

最高位0表示正,1表示负,其余二进制位是该数字的绝对值的二进制位。如:-5的原码为10101

原码简单易懂,但加减运算复杂,存在加减乘除四种运算,增加了cpu的复杂度,零的表示不唯一

反码

正数的反码与其原码相同,负数的反码是对正数逐位取反,符号位保持为1

如:-5的反码为11010

反码运算不便,也没有在计算机中应用

补码

(1)已知十进制求二进制

求正整数的二进制 除2取余,直至商为零,余数倒叙排序

求负数的二进制 先求与该负数相对应的正整数的二进制代码,然后将所有位取反,末尾加1,不够位数时左边补1

求零的二进制 全是零

(2)已知二进制求十进制

如果首位是0,则表明是正整数,按普通方法求

如果首位是1,则表明是负整数,将所有位取反,再加一,所得数字就是该负数的绝对值

如果全是零,则对应的十进制也是零

Q : 一个int型的变量所能够存储的数据范围是多大?

int占4个字节,32位
int所能存储的最大值二进制表示:
0111 1111 1111 1111 1111 1111 1111 1111
用十六进制表示 : 0x7FFFFFFF

int所能存储的最小值二进制表示:
1000 0000 0000 0000 0000 0000 0000 0000
用十六进制表示 0x80000000

8位二进制所代表的的十进制示意图

二进制 十进制
0000 0000 0
0000 0001 1
0111 1111 127
1000 0000 -128
1000 0001 -127
1000 0010 -126
1111 1111 -1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章