计算机组成原理-2-机器码

本文介绍了计算机中表示数值的机器码形式,包括原码、反码和补码的概念及特点。原码直接添加符号位,反码对负数的数值位取反,补码能解决减法运算问题并有唯一的机器零。此外,还讨论了补码的表示区间、计算方法以及移码在浮点数阶码中的应用。
摘要由CSDN通过智能技术生成

1.概念简述

真值    (书写用) :将用“+”、“-” 表示正负的二进制数称为真值,机器不能识别

机器码   (机器内部使用): 将符号和数值一起编码表示的二进制数称为机器码,机器能够识别

常用的定点数机器码有:原码、反码、补码、移码  

2.原码

在真值的基础上,增加符号位 ,数值位不变。最高位为符号位,0表示正数,1表示负数。

对于定点整数来说,在数值位的最高位前面加符号位即可

[+111011]原 = 0111011

[-111011]原 = 1111011

符号位的权值2^{n},比如原数-111011,数值为111011,原码在最高位增加符号位1之后,好像这个数增加了2^{n}一样

表示区间:−0111…1 ~ +0111…1        或        [−(2^{n}−1), 2^{n}−1]        或     (−2^{n}, 2^{n} )

对于定点小数来说,将小数点前面的改为0或1

[-0.1111]原 = 1.1111

[+0.1111]原 = 0.1111

符号位的权值:1

表示区间(区间对称)

−0.111…1 ~ +0.111…1         或           [−(1−2^{-n}), 1−2^{-n}]       或        (−1,1)

两个机器零

[+0]原=0.000…0

[-0]原=1.000…0  

原码加减法运算复杂,符号位不能直接参与运算。

3.反码

所谓反码,就是二进制的各位数码取反,但要基于真值为负数才取反,符号位与原码相同。换言之,正数的原码与反码相同;负数的反码数值位(不包括符号位)取反

两个机器零

[+0]反 = 0.000…0      

[−0]反 = 1.111…1    

[0.1111]反 = 0.1111     [−0.1111]反 = 1.0000

[111011]反 = 01110     [−111011]反 = 1000100

4.补码

4.1模

模,即符号位进位位的权值,比如:

时钟的模是12,20\equiv-4\equiv8,20点等效于-4点等效于8点,

若要计算3-4,则可以变减为加\equiv3+(-4+12)\equiv3+8\equiv11\equiv-1

通过加法运算得到了原本减法的结果

4.2补码计算

真值为正数,符号位为0,补码等于原数据 ;

真值为负数,增加一个模,也可以用反码法得出:符号位为1,数值位逐位取反,末位加1。

例: [-0.010101]补=1.101011

①零有唯一的表示方式      

[+0.0000]补= [-0.0000]补= 0.0000

②-1.0的补码    

反码法: [-1.0000]补= 0.1111+0.0001=1.0000      

加模:X+2(加了一个模)=-1+2=1

补码相对原码少一个-0,多一个-1,所以补码可以比原码、反码多表示一个数字

4.3表示区间

定点小数 x_{0}.x_{1}x_{2}...x_{n}     

-1.000…0 ~ +0.111…1            或         [-1,1-2^{-n}]       或        [-1,1)

定点整数x_{0}x_{1}x_{2}...x_{n}

-1000…0 ~ +0111…1              或          [-2^{n}, 2^{n}-1]     或        [-2^{n}, 2^{n} )

非对称区间,左侧多一个数 

4.4变形补码

也称双符号位补码,符号位00表示正数,11表示负数。

符号位01表示正溢出,10表示负溢出,最高位表示正确符号位。

对于定点小数,采用变形补码后其模为4,因此变形补码也称为模4补码

例:

x=-0.0101,则其变形补码为[x]补=11.1011

x=-10101,则其变形补码为[x]补=11101011

4.5补码加减运算规则

[X + Y]补= [X]补+ [Y]补

[X−Y]补= [X]补+ [−Y]补

[−Y]补= [[Y]补]补  

[[Y]补]补  = 对 [Y]补逐位取反, 再在最低位加 1

4.6运算实例

4.6补码的特性

  1. 唯一的机器零
  2. 符号位可以直接参与运算
  3. 减法可以变成加法,运算电路统一
  4. 负数比整数多一个 

5.移码

与补码的符号位相异,数据位相同。常用于表示浮点数阶码。

X=+10101     [X]移 =25+10101=110101

X=-10101      [X]移 =25-10101=001011 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孩子快醒醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值