2 therightoforange Therightoforange 于 2015.06.23 10:27 提问

基础问题-1的存放形式为什么是这样

图片说明

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.23 10:35
已采纳

1的二进制码是00000000000000000000000000000000001
-1是1的补码+1,补码是11111111111111111111111111111111110,加1就是11111111111111111111111111111111111

Therightoforange
Therightoforange 你的回答对我帮助很大,谢谢
2 年多之前 回复
danielinbiti
danielinbiti 回复Therightoforange: 原码和补码都是二进制码
2 年多之前 回复
Therightoforange
Therightoforange 二进制码与二进制原码是一回事还是
2 年多之前 回复
danielinbiti
danielinbiti 回复Therightoforange: 上面4个字节,自己补零吧,没数几个零
2 年多之前 回复
danielinbiti
danielinbiti 回复Therightoforange: 原码,最高位是左边
2 年多之前 回复
Therightoforange
Therightoforange 是“源码”还是“原码”;最高位是右边的对吧;为什么要有这么多个零
2 年多之前 回复
danielinbiti
danielinbiti 呃,1的二进制码是00000000000000000000000000000000001描述错了,老想着正数了。-1的二进制源码1的二进制码是10000000000000000000000000000000001,最高位是符号位
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.23 11:25

因为这样最简单。
-1 + 1 = ?
显然是0吧。
那么用相同的运算规则,直接在11111...111上+1,是不是100000...000,最高位直接丢掉,就是0了?

也许初学者会想,为什么符号位放在最高,并且负的为1,正的为0,为什么负数是用补码表示。就是硬件设计简单。

假如-1被设计成 100000...001,那么我们没法直接对负数做算术运算,必须首先判断符号,加大了计算的难度。

Csdn user default icon
上传中...
上传图片
插入图片