计算机补码最强介绍

文章探讨了计算机中负数的表示方式,强调了补码并非问题本质,而是解决溢出的一种方法。通过8位寄存器的例子,解释了负数如何通过取反加一得到,并提到了0在计算机中的两种表示形式。文章还讨论了在8位系统中规定-128和0的特殊处理,以及这种处理方式的原因和影响。
摘要由CSDN通过智能技术生成

国内很多教材对于计算机表示负数大都只有一句话,“取反加一”,并称之为“补码”。教材编写水平之低令人发指。实际上“二进制补码”只是人为定义的一个概念,与“黄赤交角”一样。不是在说明问题的本质,而是在解释解决问题的办法。

计算机表示负数,运用的是“溢出原理”。举例说明,如8位计算机寄存器。  0000 0000(2)= 0(10)同时 1 0000 0000(2)= 0(10)所以1111 1111 + 0000 0001 = 0000 0000,下面说明 -8 在计算机中的表示,表示方法为  -8 = 0-8 = 1111 1111 - 0000 1000 + 0000 0001 = 1111 1000,所以 1111 1000 就是-8 在计算机中的表示。于是乎,人们就总结了2条规律:1. 负数在计算机中的表示为 取反+1,取反+1成为这个数的二进制补码。2.最高位为符号位,1负,0正。

又引出一个重要的问题,是关于0的。0在数学中不存在正负,但如何解释可能出现在寄存器中的这两个数?1000 0000 = -0 ??  0000 0000 = +0 ??  计算得知,8位寄存器取值范围是  -127至 -0  +0至+127,于是认为规定,1000 0000 = -128,0000 0000 = 0.这样规定使得在8位寄存器中,-128 没有与之对应的正数,但权衡利弊,这已经是最佳解决方案。至今所有计算机,指令集也遵循这套方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值