数的机器码表示.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

采用补码表示法进行减法运算就比原码方便得多了。因为不 论数是正还是负,机器总是做加法,减法运算可变为加法运算。 但根据补码定义,求负数的补码要从2减去|x|。为了用加法 代替减法,结果还得在求补码时作一次减法,这显然是不方便 的。下面介绍的反码表示法可以解决负数的求补问题。 对定点整数,补码表示的定义是 x 2n>x≥0 [x]补={ (mod 2n+1) 2.10 2n+1-x=2n+1 -Biblioteka Baidux| 0≥x≥ -2n 采用补码表示法进行减法运算就比原码方便多了.因为不论 数是正还是负,机器总是做加法,减法运算可变成加法运 算.但是根据补码定义,求负数的补码要从2减去∣x|。为 了用加法代替减法,结果还得在求补码时作一次减法,这 显然是不方便的.下面介绍的反码表示法可以解决负数的求 补问题.
3.反码表示法 所谓反码,就是二进制的各位数码0变为1,1变为0。也就 是说,若Xi=1,则反码为xi=0;若xi=0,则反码xi=1。 数值上面的一横表示反码的意思。在计算机中用触发器寄 存数码,若触发器Q端输出表示原码,则其Q端输出就是 反码。由此可知,反码是容易得到的。 对定点小数,反码表示的定义为 x [x]反 ={ 1>x≥ =0 (2.11) 0≥ x>-1
[例3]以定点整数为例,用数轴形式说明原码、反码、 补码表示范围和可能的数码组合情况。 原码、反码、补码表示分别示于下图。 [解:] 与原码、反码不同,在补码表示中“0”只有一种形 式,且用补码表示负数时范围可到-2n 。
[例4]将十进制真值(-127,-1,0,+1,+127)列表表示 成二进制数及原码、反码、补码、移码值。 [解:] 二进制真值x及其诸码值列于下表,其中0在[x]原 [x]反中有两 种表示。由表中数据可知,补码值与移码值差 别仅在于符号位不同。
x [x]补={ 2+x=2-∣x∣ 1>x≥ =0 (mod2) 0≥ x ≥ -1 (2.9)
例如,x=+0.1011, 则 [x]补=0.1011 x=-0.1011, 则 [x]补=10+x=10.0000-0.1011=1.0101 一般情况下,对于正数x=+0.x1x2…xn,则有 [x]补=0. x1x2…xn 对于负数x=-0. x1x2…xn,则有 [x]补=10.00…0-0. x1x2…xn (mod 2) 对于0,[+0]补=[-0]补= 0.0000 (mod 2) 注意,0的补码表示只有一种形式。
x [x]反={ 2n>x≥0
n+1
(2
-1)+x 0≥x>-2n
(2.13)
4.移码表示法 移码通常用于表示浮点数的阶码。由于阶码是 个n位的整数,所以假定定点整数移码形式 为 x 0x1x2…xn时,对定点整数,移码的定义是 [x]移=2n+x 2n>x≥-2n (2.14) 若阶码数值部分为5位,以x表示真值,则 [x]移=25+x 25>x≥- 25 例如,当正数x=+10101 时,[x]移=1, 10101 ;当负数x=-10101 时,[x]移=25+ x=25-10101=0,01011。移码中的逗号不 是小数点,而是表示左边一位是符号位。显然,移 码中符号位x0表示的规律与原码、补码、反码相 反。
我们比较反码与补码的公式 -n [x]反=(2-2 )+x [x]补=2+x 可得到 -n 补 反 [x] =[x] +2 (2.12) 这就是通过反码求补码的重要公式。 这个公式告诉我们,若要一个负数变补码,其方法 是符号位置1,其余各位0变1,1变0,然后在最末位 -n (2 )上加1。 对定点整数,反码表示的定义为
若定点整数的原码形式为x0x1x2…xn,则 原码表示的定义是
x 2n>x≥0
[x]原={
(2.8) 2n-x=2n+|x| 0≥x>-2n 采用原码表示法简单易懂,但它的最大缺点是加 法运算复杂。这是因为,当两数相加时,如果是 同号则数值相加;如果是异号,则要进行减法。 而在进行减法时还要比较绝对值的大小,然后大 数减去小数,最后还要给结果选择符号。为了解 决这些矛盾,人们找到了补码表示法。

小结:上面的数据四种机器表示法中,移 码表示法主要用于表示浮点数的阶码。由 于补码表示对加减法运算十分方便,因此 目前机器中广泛采用补码表示法。在这类 机器中,数用补码表示,补码存储,补码 运算。也有些机器,数用原码进行存储和 传送,运算时改用补码。还有些机器在做 加减法时用补码运算,在做乘除法时用原 码运算。
2.补码表示法
负数用补码表示时,可以把减法转化为加法.这样, 在计算机中实现起来就比较方便. 在定点小数机器中,数最大不超过1,也就是负 的小数对”1”的补码是等价的.但实际上,负数的 符号位还有一个”1”,要把它着成数的一部分, 所以要对2求补码,也就是以2为模数 若定点小数补码形式为x0.x1x2…xn,则补码表示 的定义是
(2-2-n)+x
其中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
2.1.2 数的机器码表示
为了区别一般书写表示的数和机器中编码表示的数,通常将 一般书写表示的数称为真值,机器中编码表示的数称为机器 数或机器码。 1.原码表示法 若定点小数的原码形式为x0x1x2…xn,则原码表示的定义 是 x 1>x≥ =0 [x]原={ (2.7) 1-x=1+∣x∣ 0≥ x>-1 式中[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
[例5]设机器字长16位,定点表示,尾数15位,数符1位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多 少?; [解:] (1)定点原码整数表示 最大正数值=(215-1)10=(+32767)10 0 111 111 111 111 111
相关文档
最新文档