请选择 进入手机版 | 继续访问电脑版

微型计算机原理与接口技术(2)----计算机中数的表示

[复制链接]
密战 发表于 2021-1-1 10:32:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
目次
 
无符号数
符号数
原码
反码
补码
总结:
无符号数

无符号数就是没有符号的数,如果一个二进制有N位,这N位数码均表现数值部门,没有任何是表现“+” “-”符号的,这就是无符号数。
二进制无符号整数的数值范围:0~(
)。此中N为无符号整数的位数。
八位无符号整数的数值范围是0~255。
符号数

规定:一个二进制数的最高位为符号位,在符号位中,用“0”代表正号,用“1”代表负号,而其余的位表现该数的数值部门。
机器数:一个符号数(包罗符号位)在机器中的一组二进制数表现形式。
真值:机器数表现的数值。
由于编码的差别,符号数表现的形式有三种方法:原码、反码、补码。现在盘算机中实际使用的是补码。
8位二进制数是盘算机运算和传送的根本代为,称为字节。因此,下面举例都是用八位二进制数(字节)来表现符号数的各种编码。
  原码

  表现:二进制数的最高位(符号位)用0表现整数,用1表现负数,其余的位表现数值。
  

  注:为了让各人看的清楚,我有意将符号位(最高位)以“斜体”表现。
  在原码中,对于0,可以认为是(+0),也可以认为是(-0)。因此0在原码中有两种表现:
  

  8位二进制数的原码可表现的数值范围:-127~+127。N位的二进制数的原码可表现的数值范围:
  ~ 

  原码原理简朴易懂,与真值转换方便。但盘算机采用原码进行加、减运算的话,相当麻烦。理论上讲,设计以原码为编码的盘算机没有问题,但是运算器逻辑结构设计复杂,运算、判断的时间增长,因此在微型机问世前就根本不为人们所用了。
  反码

  表现:正数的反码与原码相同,即反码的最高位(符号位)用0表现正数,其余的位表现数值(数字位)。
  负数的反码是将它的正数按位求反得到的。
  

  若用8位二进制表现一个符号数反码时,最高位为符号位。若符号位为0(正数)时,反面的7位就是数值部门;若符号位为1(负数)时,反面的7位数字位表现的并不是该数的数值(因此写成数字位),必须把它们按位求反后,才气得到该数的数值部门。
  同原码一样,对于0,其反码也有两种表现:
  

  显然八位二进制数的反码可表现的数值范围:-127 ~ +127。
  盘算机中符号数也很少采用这种编码。
  补码

  表现:正数的补码与原码、反码相同。负数的补码是将它的对应正数按位求反加1形成的。
  拓展:负数的补码,界说如下:[ X ]补 = 模-| X |。(模与该负数绝对值之差)
  (许多教科书推崇于取反加1,那么-128的补码怎么办呢?)
  按照界说,
写成二进制,就是:1000 0000。
  

  在补码表现中,0的补码只有一种表现:
  

  八位二进制数的补码可表现的数值范围:-128 ~ +127。
  盘算机的符号数都采用补码表现,这样同一个运算器不光可以完成符号数的加法运算,而且两个数的减法也可以用加法取代,这可使运算器设计简化,速度提高。
总结:

可见原码给减法带来了很大的盘算难度,反码管理了减法运算的问题,但对于“0”有两种表现方式,存在歧义。补码既管理了减法运算的问题,又将“0”唯一表现,且补码表现的数字范围要比原码和反码大。这也是为什么盘算机中会最终选择补码来进行存储和盘算数字的原因。

来源:https://blog.csdn.net/weixin_42645548/article/details/111943319
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )