基础知识2机器中符号数的表示法精品PPT课件

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

[+0]反=[+0]原=00000000B 当机器字长n=16时:
[+127]反=[+127]原=01111111B
[+8]反=[+8]原=0000000000001000B
201[3+-018 27]反=[+127]原=0000000001111111B
9
负数的反码是在原码基础上,符号位不变(仍为1),数值位 按位取反。例如,当机器字长n=8时:
[+127]原=01111111B [-127]原=1111 1111B
当机器字长n=16时,
[+0]原=0000 0000 0000 0000B [-0]原=1000 0000 0000 0000B
[+8]原=0000 0000 0000 1000B [-8]原=1000 0000 0000 1000B
X1=105=+01101001B X2=-105=-01101001B
[X1]原=0110 1001B [X2]原=1110 1001B
2013-08
5
例如,当机器字长n=8时,
[+0]原=00000000B
[-0]原=1000 0000B
[+8]原=00001000B
[-8]原=1000 1000B
[-8]原=10001000B [-8]反=11110111B [-8]补=28-8=11111000B 补码的表示范围:
[-127]原=11111111B [-127]反=10000000B [-127]补=28-127=10000001B
2n1 x 2n1 1
为了表示数的符号,我们通常约定:用二进制数的最高位 表示数的符号。
这时最高位叫做符号位。
规定用“0”表示正,“1”表示负 。 一个数在机器中用最高位表示数的符号,其它位表示数值的 大小的这种表示形式,叫做机器数。
这样对于n位二进制数,如果它是一个带符号的数,则最高
位Bn-1就表示数的符号,剩下的n-1位表示数的大小。
数据在机器中的表示,可以使用不同的码制—主要有:原 码、反码、补码、移码。
2013-08
4
2. 原码 用最高位表示数的符号(0表示+,1表示-),数值部分用数的 绝对值表示,这样的编码叫做源码。
对于用N位二进制表示的数据,最高位表示符号位,剩余的N-1 位表示数的绝对值。
例如:一个数用8位二进制表示
01101110B
+1101110B (+110)
2013-08
3
(3)带符号数与无符号数
用一位二进制位表示数的符号:0表示正数,1表示负数, 这种表示数的方法,称为带符号数的表示方法。所表示的数, 叫做带符号的数。
带符号的数其最高位为符号位。 如果将全部有效位都用来表示数的大小,这种数的表示方 法,叫无符号数的表示方法,所表示的数,叫无符号数。
“0”的原码有两种表示法:00000000表示+0,10000000表示-0。
2013-08
7
原码表示法简单直观,且与真值的转换很方便,但不便于 在计算机中进行加减运算。
如进行两数相加,必须先判断两个数的符号是否相同。
如果相同,则进行加法运算,否则进行减法运算。 如进行两数相减,除了判断两个数符号是否相同外,还必须 比较两数的绝对值大小,再由大数减小数,结果的符号要和绝 对值大的数的符号一致。 按上述运算方法设计的算术运算电路很复杂。
[-0]反=(28-1)-0=11111111B [-127]反=(28-1)-127=10000000B
反码表示数的范围: (2n1 1) x 2n1 1
例如:8位二进制反码表示数的范围为:-127+127,
16位二进制反码表示数的范围为:-32767+32767;
“0”的反码有两种表示法:
2013-08
2
例如对于一ቤተ መጻሕፍቲ ባይዱ字节型二进制数来说,n=8共有8位,D7位
为符号位,D6D0位为数值位。
简单的说,机器数就是数据在机器中的二进制表示形式。
机器数所表示的值称为该机器数的“真值”。
例如,一个带符号的数 ,最高位为符号位,其它位为数的
值,它的真值为
机器数 11101001B 真值 - 1101001B (-105)
[+32767]原=0111 1111 1111 1111B
[-32767]原=1111 1111 1111 1111B
2013-08
6
可以看出
-127
+127 是真值
8位二进制原码表示数的范围为 -127 + 127,
16位二进制原码表示数的范围为 -32767 + 32767;
n位原码的数据表示范围 : -( 2n-1-1 )~ +(2n-1-1)
因此,计算机中通常使用补码进行加减运算,这样就引 入了反码表示法和补码表示法。
2013-08
8
3. 反码
设数x的反码记作[x]反,如机器字长为n,则反码定义如下:
[ x]反
x
(2n 1) | x |
0 x 2n1 1 (2n1 1) x 0
正数的反码与其原码相同。例如,当机器字长n=8时:
真值就是利用正负号表示数的符号,数值部分位数的绝对值。
例如:正数 1234
+1234
正数 100H
+100H
正数 01011010B
+01011010B
负数 200 负数 32H 负数 01100100B
-200 -32H -01100100B
2013-08
1
(2)机器数
在计算机中,我们只存储0,1两个代码,数的符号没办法 用“+”,“-”符号来表示。
[+8]补=[+8]反=[+8]原=0000000000001000B
[+127]补=[+127]反=[+127]原=0000000001111111B
2013-08
11
负数的补码是在原码基础上,符号位不变(仍为1), 数 值 部分按位取反,末位加1(也就是在反码基础上末位加1)。
例如,当机器字长n=8时:
00000000表示+0,
2013-08
11111111表示-0。
10
4. 补码
设数x的补码记作[x]补,如机器字长为n,则补码定义如下:
[x]补
x
2n | x |
0 x 2n1 1 2n1 x 0
正数的补码与其原码、反码相同。例如,当机器字长n=8时:
[+8]补=[+8]反=[+8]原=00001000B [+127]补=[+127]反=[+127]原=01111111B 当机器字长n=16时:
相关文档
最新文档