数的机器码表示,数的机器码表示原理图解_第1页
数的机器码表示,数的机器码表示原理图解_第2页
数的机器码表示,数的机器码表示原理图解_第3页
数的机器码表示,数的机器码表示原理图解_第4页
数的机器码表示,数的机器码表示原理图解_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Word数的机器码表示,数的机器码表示原理图解

数的机器码表示,数的机器码表示原理图解

在计算机中对数据进行运算操作时,符号位如何表示呢?是否也同数值位一道参加运算操作呢?为了妥善的处理好这些问题,就产生了把符号位和数字位一起编码来表示相应的数的各种表示方法,如原码、补码、反码、移码等。为了区别一般书写表示的数和机器中这些编码表示的数,通常将前者称为真值,后者称为机器数或机器码。

1.原码表示法

若定点小数的原码形式为x0x1x2…xn,则原码表示的定义是

(2.7)

式中[x]原是机器数,x是真值

例如,x=+0.1001,则[x]原=0.1001

x=-0.1001,则[x]原=1.1001

对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式:

[+0]原=0.000...0

[-0]原=1.000...0

若定点整数的原码形式为x0x1x2…xn,则原码表示的定义是

(2.8)

采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。为了解决这些矛盾,人们找到了补码表示法。

2.补码表示法

我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4点正;而有一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退7-4=3格;一是将时针向前拨12-3=9格。这两种方法都能对准到4点,由此可以看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表示

-3=+9(mod12)

mod12的意思就是12模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式。

上例中其所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉,最后得到16-12=4。从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便。

若定点小数补码形式为x0.x1x2…xn,则补码表示的定义是

(2.9)

例如,x=+0.1011,则[x]补=0.1011

x=-0.1011,则[x]补=10+x=10.0000-0.1011=1.0101

对于0,[+0]补=[-0]补=0.0000(mod2)

注意,0的补码表示只有一种形式。

采用补码表示法进行减法运算就比原码方便得多了。因为不论数是正还是负,机器总是做加法,减法运算可变为加法运算。但根据补码定义,求负数的补码要从2减去|x|。为了用加法代替减法,结果还得在求补码时作一次减法,这显然是不方便的。下面介绍的反码表示法可以解决负数的求补问题。

对定点整数,补码表示的定义是

(2.10)

3.反码表示法

所谓反码,就是二进制的各位数码0变为1,1变为0。也就是说,若xi=1,则反码为xi=0;若xi=0,则反码xi=1。数值上面的一横表示反码的意思。在计算机中用触发器寄存数码,若触发器Q端输出表示原码,则其Q端输出就是反码。由此可知,反码是容易得到的。

对定点小数,反码表示的定义为

(2.11)

其中n代表数的位数。

在一些文献中,这种以2为基数的反码又称为1的补码。

一般情况下,对于正数x=+0.x1x2…xn,则

[x]反=0.x1x2…xn

对于负数x=-0.x1x2…xn,则有

[x]反=1.x1x2…xn

对于0,有[+0]反和[-0]反之分:

[+0]反=0.00...0

[-0]反=1.11...1

我们比较反码与补码的公式

[x]反=(2-2-n)+x

[x]补=2+x

可得到

(2.12)

这就是通过反码求补码的重要公式。这个公式告诉我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。

对定点整数,反码表示的定义为

(2.13)

4.移码表示法

移码通常用于表示浮点数的阶码。由于阶码是个n位的整数,假定定点整数移码形式为x0x1x2…xn时,对定点整数,移码的传统定义是真值加上一个固定常数2n

(2.14)

若阶码数值部分为7位,以x表示真值,则

[x]移=27+x=128+x128>x≥-128

例如,当正数x=+1010101时,[x]移=1,1010101;

当负数x=-1010101时,[x]移=27+x=27-1010101=10000000-1010101=0,0101011。

移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位x0表示的规律与原码、补码、反码相反。

小结:上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。

[例3]以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。

[解:]

原码、反码、补码表示分别示于下图。与原码、反码不同,在补码表示中“0”只有一种形式,且用补码表示负数时范围可到-2n。

[例4]将十进制真值(-127,-1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。

[解:]

二进制真值x及其诸码值列于下表,其中0在[x]原[x]反中有两种表示。由表中数据可知,补码值与移码值差别仅在于符号位不同。

[例5]设机器字长16位,定点表示,尾数15位,数符1位,问:

(1)定点原码整数表示时,最大正数是多少?最小负数是多少?

(2)定点原码小数表示时,最大正数是多少?最小负数是多少?

[解:]

[例6]假设由S,E,M三个域组成的一个32位二进制字所表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论