有符号的二进制表示及转换

有符号的二进制表示及转换

有符号的二进制表示:

补充:

在计算机中,负数以其正值的补码形式表达

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

反码:将二进制数按位取反(0变1,1变0),所得的新二进制数称为原二进制数的反码。

补码:反码加1称为补码。

最左边的看作符号位,为1表示负数,为0表示非负数

(即 有符号的二进制表示较无符号的少了1/2(这里指非负数和负数要各占一半),这就能解释为何

int型取值范围为:-2^31 ~ 2^31-1,而unsigned int(无符号整数型)取值范围为:2^32)

正变负 :各个位数取反再加一

负变正 :各个位数减一再取反(等同于取反再加一)

例:(众所周知,一个整数占四个字节,即四个8比特位)

因此,整数在计算机眼中应该是这样的:

二进制

十进制

00000000 00000000 00000000 00000010

2

00000000 00000000 00000000 00000011

3

00000000 00000000 00000000 00000111

7

00000000 00000000 00000000 00001010

10

二进制

十进制

11111111 11111111 11111111 11111110(11111111 11111111 11111111 11111101+1)

- 2

11111111 11111111 11111111 11111101(11111111 11111111 11111111 11111100+1)

- 3

11111111 11111111 11111111 11111001(11111111 11111111 11111111 11111000+1)

- 7

11111111 11111111 11111111 11110110(11111111 11111111 11111111 11110101+1)

-10

互为相反数的整数的二进制表示形式相加等于零吗?

是的。实际上,二进制中只有0和1的形式,即其表示数只有0,1,-1,相加实质为零

例 : 2 : 00000000 00000000 00000000 00000010

-2 : 11111111 11111111 11111111 11111110 相加为1 00000000 00000000 00000000 00000000(1舍掉)

补充思考 : 在有符号整数的二进制表示中,首位即为符号位,而最高的表示数为 2^31-1(01111111 11111111 11111111 11111111),因此正数符号位为0(包含0(00000000 00000000 00000000 00000000));

而负数二进制为正数补码(正数取反加一),因此符号位为1;

而所能表示数中负数与非负数各占一半,对应的就是首位取0取1的问题

相关推荐

bt365网上娱乐 iphone16听筒位置图 苹果手机听筒位置在哪个地方

iphone16听筒位置图 苹果手机听筒位置在哪个地方

📅 06-28 👁️ 9152
365娱乐 关于性行为的生理知识

关于性行为的生理知识

📅 07-01 👁️ 5869