计算机的加减乘除(原码反码补码)

 我来答
舒适还明净的海鸥i
2022-06-14 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:70万
展开全部

计算机对数的操作,以二进制为基,因为电子原件只能表达0/1,开或关这两种状态,如果学过模电和数电,对此的理解会更深。
比如说十进制9,在计算机里不可能单独记个9,而是记录成0000 1001,第一位符号位,0表示正数。但是-9,在计算机里记得就不是1000 1001(原码),而是1111 0111(补码)。
1、 为什么不用原码记录负数?
计算机只有加法,没有减法,如果用原码记录负数,则9 + (-9) = 0000 1001 + 1000 1001 = 1001 0010,得到的结果肯定不对
2、 为什么不用反码记录负数?
如果用反码记录负数,则9 + (-9) = 0000 1001 + 1111 0110 = 1111 1111,再反码,结果等于1000 0000,这个结果其实是对的,相当于等于-0,和0000 0000是一样的,它表示+0.(因为二者+1都等于0000 0001),但这样就浪费了一个编码,明明0只需要1个数表示就行,可以把1000 0000表示为-128,岂不妙哉。
3、 采用补码为什么就能解决这个问题?
如果用补码记录负数,则9 + (-9) = 0000 1001 + 1111 0110 = 1111 1111,再+1,等于0000 0000,刚好为0

总结:计算机中只有加法,没有减法,需要用补码来表示负数,减法的表示方法变成了:加一个负数。

此外,没有乘法和除法,那么怎么表示乘除呢?
移位,左移乘2,右移除2
比如3 * 5 = (0000 0010 + 0000 0001) * 0000 0101,第一项是2 5,等于0000 0101往左移一位=0000 1010,第二项是1 5=0000 0101,二者加起来=0000 1111=15
除法类似。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式