计算机表示正负数

国内很多教材都有其为本科教材,对于计算机表示负数大概只有一句话,“取反加一”,并称之为“补码”。今天偶然翻阅资料,觉得是时候彻底解决一下这个问题了。

首先“二进制补码”只是人为定义的一个概念,与“黄赤交角”一样。不是在说明问题的本质,而是在解释解决问题的办法。计算机表示负数,运用的是“溢出原理”。

溢出原理,举例说明,如8位计算机寄存器。  0000 00002)= 0(10)同时 1 0000 00002)= 0(10)所以

1111 1111 + 0000 0001 = 0000 0000,下面说明 -8 在计算机中的表示,表示方法为  -8 = 0-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 没有与之对应的正数,但权衡利弊,这已经是最佳解决方案。至今所有计算机,指令集也遵循这套方案。




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值