计算机中的数制表示

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


阶符 阶码
阶码部分

数符 尾数
尾数部分
浮 点 数
阶码用定点整数,尾数用定点小数表示
二、八与十六进制之间的转换
整数从右向左三位并一位 小数从左向右三位并一位
二进制
一位拆三位
八进制
整数从右向左四位并一位
小数从左向右四位并一位
二进制
一位拆四位
十六进制
示例: 100 110 110 111 .010 100
(4
6
6
7
. 2 4 )8
1001 1011 0111.0101 ( 9 B 7 . 5 )16
为什么用补码
例3 假设只用一个字节来表示一个整数,求+7-6的值 解 : (+7 )补=00000111 (-6 )补=11111010
00000111 + 11111010
进位自然舍去
100000001
对补码再求一次补,会得到该数的原码。
已知补码为:11111010 10000101 + 1 10000110 (-6)
四、数据的机内表示
• 存在计算机内存中的数据都是二进制形式。
机器数与真值
机器表示:
(+53)8 真 值 (-53)8
0 0 1 0 1 0 1 1
符号位
数值部分
1 0 1 0 1 0 1 1
符号位
数值部分
机器数与真值
机器数:
对于有符号的数,机器中约定某一位表示符号, 连同数符一起数码化的数。无符号的数没有符号位。 常用“0”表示正号,“1”表示负号。
计算机的硬件结构中只有加法器,所以大部分的运算 都必须最终转换为加法.如果用原码做减法: 十进制: (1) 10 - (1)10 = (1)10 + (-1)10 = (0)10 二进制: (1)原= 00000001 (-1)原= 10000001 (00000001)原 + (10000001)原 = (1000010)原 =(-2)10 显然不正确 问题出现在带符号位的负数
计算机的数制
⑴ 十进制数(Decimal) 特点:数值用0~9表示,逢十进一。 十进制通式为: 整数部分,n为整数部分位数
s10=
a n×10 n-1 +. . . +a1×100
+
a -1 ×10 -1+ . . . +a -m ×10 -m
小数部分,m为小数部分位数 其中:“10”为十进制数的基数
计算机的数制
十进制(D) 0 1 2 3 4 5 6 7 8 9 10 11 二进制(B) 0 01 10 11 100 101 110 111 1000 1001 1010 1011 八进制(O) 0 1 2 3 4 5 6 7 10 11 12 13 十六进制(H) 0 1 2 3 4 5 6 7 8 9 A B
+1
11111001
数值数据的补码表示 例2. 假设只用一个字节来表示一个整数, 求+0和-0的补码表示 (+0 )补=00000000 X为负数时 (-0 )补=11111111 [x]补= [x]反+1
进位自然舍去
+ 1 1 00000wk.baidu.com00
故 : (+0 )补=00000000= (-0 )补
结果为:1001011
十进制小数
非十进制小数
进位法:用十进制小数乘基数,当积为0或达到
所要求的精度时,将整数部分由上而下排列。
示例:



0.625 2 1.250 2 0.50 2 1.0
结果为:0.101
整数=1
整数=0
整数=1 小数值=0
例: 计算(25.36)10=(?)2=(?)8
非十进制数
数值数据的原码表示
表示方法规定:
最高位作为符号位,其余各位代表 数值本身的绝对值(以二进制表示).
若符号位为0,则 表示正数 若符号位为1,则表示负数
数值数据的原码表示
例1 假设用一个字节表示一个整数,求+7和-7的原码 解: (+7 )原= 00000111
例2
(-7 )原= 10000111 真值 原码 1011 -1011 0.1011 00001011 10001011 0.1011000
注意:零的补码表示是唯一的
十进制数
4 3
原码表示
00000100 00000011
反码表示
00000100 00000011
补码表示
00000100 00000011
2
1 0 -0 -1
00000010
00000001 00000000 10000000 10000001
00000010
00000001 00000000 11111111 11111110
计算机的数制
(2)二进制数(Binary)
特点 :0 或 1, 逢二进一。
二进制数的通式为:
s2 =
例如:
an ×2 n-1 +. . . +a1×20 + a-1×2-1 +a-m×2-m
1+1=10 11+1=100 而不是等于12
计算机的数制
(3)八进制(Octal)
特点:数字为0~7,逢八进一。
八进制数的通式为:
s8 =
an×8 n-1 + . . . + a1×8 0 + a-1×8-1+a-m×8-m
例如: 7+1=10 而不是等于8
计算机的数制
(4)十六进制(Hexadecimal)
特点:每位可取数字0~9和英文字母A(10)、 B(11)、C(12)、D(13)、E(14)、F(15)的任意 一个,逢十六进一。 十六进制数的通式为: S16=an×16 n-1 + . . . + a1×160 + a-1×16-1+. . . + a-m×16-m 例如: 9+1=A 而不是等于10 F+1=10
机器数的真值:
按一般习惯书写形式,即,正负号加绝对值表示 的数。
机器数与真值
例如:真值为+1101的一种机器数形式为?
01101 真值为-1101的一种机器数形式为? 11101
显然,机器数形式的二进制位数受机器字长限 制,因而表示的范围和精度也将受到相对限制
• 数值数据的表示:原码、反码、补码 • 数值数据在内存中数据一般采用补码表示。
数值数据的补码表示 “补码”的原理
表示方法规定:
1、正数的补码、反码、原码相同. 2、对于负数的补码,则将其最高位置为 1,其 余各位为对原码的相应数据位取反,然后再对整 个数加1.
数值数据的补码表示
例1 假设只用一个字节来表示一个整数,求+7 和-7的补码
解: (+7 )补=00000111 (-7 )补= 11111000
为什么用补码
计算机中采用补码的设计目的是: ⑴ 使符号位能与有效值部分一起参加运算, 从而简化运算规则。补码机器数中的符号 位,并不是强加上去的,是数据本身的自 然组成部分,可以正常地参与运算。 ⑵ 使减法运算转换为加法运算,进一步简化 计算机中运算器的线路设计。 所有这些转换都是在计算机的最底层进行的, 而在我们使用的汇编、c等其他高级语言中 使用的都是原码。
三、数制间的转换
十进制数 十进制数 非十进制数 非十进制数
二、八、十六进制之间的转换
十进制整数
非十进制整数
余数法:除基数取余数、由下而上排列。 示例:
8 75 8 9 8 1 0 3 1 1
结果为:113
又例:2 75
2 37 2 18 2 9 2 4 2 2 2 1 0
1 1 0 1 0 0 1
数符的个数。例如: 十进制数 234 的位数为3;
二进制数 11010011 的位数为 8。
位权:不同位上数字的单位值
二、计算机的数制
常用计数制的基数和数字符号
十 制 二 制 八 制 进 进 进 基数 10 2 0,1 8 0--7 十 进 六 制 16 0--9,A,B,C,D,E,F
数 符 0--9 字 号
例1 假设只用一个字节来表示一个整数,求+7和-7的反码 解: (+7 )反= (-7 )反=
00000111 11111000
数值数据的反码表示
例2. 假设只用一个字节来表示一个整数,求+0和 -0的反码表示
解:
(+0 (-0
)反= 00000000 )反= 11111111
0的反码不唯一
故可知:
maqiaomei@nuc.edu.cn
补充的主要内容
数制的基本概念
计算机中的数制 数制间的转换
计算机数值数据的机内表示
一、数制的基本概念
基数
数符 位数
是最大进位数(进制数),例如:十进制基数为10; 六 十进制(时间)的基数为60等 每个数位上的值。
例如: 234 百位数符为2,十位数符3,个位数符4。
符号位
0
0 0
0 0
1
隐含小数位
• 定点数表示简单直观,但运算值表示的范 围较小,运算时容易产生溢出。 • 为增大数值的表示范围,防止溢出,采用 浮点数表示法。类似于科学计数法。
如:0.27E-2 → + 0.27 * 10-2
如:0.27E-2 → + 0.27 * 10-2
31 30 24 23 22 0
-0.1011
1.1011000
数值数据的原码表示
例3
假设用一个字节来表示一个整数,求+0和-0的原 码表示 解: (+0 )原= 00000000 (-0 )原= 10000000 故可知: 0的原码不唯一
数值数据的反码表示
表示方法规定: 1.一个数如果值为正,则它的反码与原码相同 2.一个数如果值为负,则将其符号位置为 1,其余各位为 对原码的相应数据位取反.
转换公式:(F)10 =an ×X n-1
十进制数 +. . . +a1×X0 a-1×X-1 +a-m×X-m
位权法:把各非十进制数按权展开求和
+
示例:
(1011.1) 2 = 1×23+0×22 + 1×21 + 1 ×20 +1 × 2-1
= 8 + 0 + 2 + 1 + 0.5 = (11.5)10
00000010
00000001 00000000 11111111
-2
-3 -4 -5
10000010
10000011 10000100 10000101
11111101
11111100 11111011 11111010
11111110
11111101 11111100 11111011
为什么用补码
总结
[X]原、[X]反 、[X]补用“0”表示正号, 用“1”表示负号 如果X为正数,则[X]原=[X]反 =[X]补。 如果X为0,则 [X] 补 有唯一 编码, [X]原、[X]反 有两种编码。 对补码再求一次补,会得到该数的原码
定点数与浮点数
• 在计算机中没有专门表示小数点的位,小 数点的位置是约定默认的。 • 定点数:小数点位置固定的数。 • 浮点数:小数点位置可以变动的数。
为什么用补码
如果用反码做减法: (1)反= 00000001 (-1)原= 11111110 (00000001)反 + (11111110)反 = (11111111)反 = (-0 ) 有问题。 如果用补码做减法: (1)补=00000001 (-1)补=11111111 (00000001)补+(11111111)补 = (00000000)补=(0) 正确。
• 先澄清一个概念,浮点数并不一定等于小 数,定点数也并不一定就是整数。 • 所谓浮点数就是小数点在逻辑上是不固定 的,而定点数只能表示小数点固定的数值, 具用浮点数或定点数表示某哪一种数要看 用户赋予了这个数的意义是什么。
定点小数:
符号位
0 1
0 0
0 0
0
0
隐含小数位
定 点 数
1
定点整数: 1
相关文档
最新文档