计算机数制表示方法,计算机中的数制表示

《计算机中的数制表示》由会员分享,可在线阅读,更多相关《计算机中的数制表示(42页珍藏版)》请在人人文库网上搜索。

1、补充的主要内容,数制的基本概念 计算机中的数制 数制间的转换 计算机数值数据的机内表示,基数 是最大进位数(进制数),例如:十进制基数为10; 六 十进制(时间)的基数为60等 数符 每个数位上的值。 例如: 234 百位数符为2,十位数符3,个位数符4。 位数 数符的个数。例如: 十进制数 234 的位数为3; 二进制数 11010011 的位数为 8。,一、数制的基本概念,二、计算机的数制,常用计数制的基数和数字符号,计算机的数制,十进制数(Decimal) 特点:数值用09表示,逢十进一。 十进制通式为: s10=a n10 n-1 +. . . +a1100 +a -1 10 -1+ 。

2、. . . +a -m 10 -m,小数部分,m为小数部分位数,整数部分,n为整数部分位数,其中:“10”为十进制数的基数,计算机的数制,(2)二进制数(Binary) 特点 :0 或 1, 逢二进一。 二进制数的通式为: s2 = an 2 n-1 +. . . +a120 + a-12-1 +a-m2-m 例如: 1+1=10 11+1=100 而不是等于12,计算机的数制,(3)八进制(Octal) 特点:数字为07,逢八进一。 八进制数的通式为: s8 = an8 n-1 + . . . + a18 0 + a-18-1+a-m8-m 例如: 7+1=10 而不是等于8,(4)十六进制。

3、(Hexadecimal) 特点:每位可取数字09和英文字母A(10)、 B(11)、C(12)、D(13)、E(14)、F(15)的任意一个,逢十六进一。 十六进制数的通式为: S16=an16 n-1 + . . . + a1160 + a-116-1+. . . + a-m16-m 例如: 9+1=A 而不是等于10 F+1=10,计算机的数制,十进制(D) 二进制(B) 八进制(O) 十六进制(H),0 0 0 0 1 01 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 。

4、11 9 10 1010 12 A 11 1011 13 B,计算机的数制,三、数制间的转换,十进制数,非十进制数,非十进制数,十进制数,二、八、十六进制之间的转换,8 75 3 8 9 1 8 1 1 0,结果为:113,余数法:除基数取余数、由下而上排列。 示例:,2 75 1 2 37 1 2 18 0 2 9 1 2 4 0 2 2 0 2 1 1 0,又例:,结果为:1001011,进位法:用十进制小数乘基数,当积为0或达到 所要求的精度时,将整数部分由上而下排列。 示例: 0.625 2 1.250 整数=1 2 0.50 整数=0 2 1.0 整数=1 小数值=0,结果为:0.1。

5、01,例: 计算(25.36)10=(?)2=(?)8,位权法:把各非十进制数按权展开求和 转换公式:(F)10 =an X n-1 +. . . +a1X0 + a-1X-1 +a-mX-m 示例: (1011.1) 2 = 123+022 + 121 + 1 20 +1 2-1 = 8 + 0 + 2 + 1 + 0.5 = (11.5)10,整数从右向左三位并一位 小数从左向右三位并一位 二进制 八进制,二、八与十六进制之间的转换,整数从右向左四位并一位 小数从左向右四位并一位 二进制 十六进制,100110110111.010 100( 4 6 6 7. 2 4 )8,1001 101。

6、1 0111.0101( 9 B 7 . 5 )16,示例:,存在计算机内存中的数据都是二进制形式。,机器表示:,符号位,数值部分,数值部分,(+53)8,(-53)8,真 值,符号位,机器数与真值,机器数: 对于有符号的数,机器中约定某一位表示符号,连同数符一起数码化的数。无符号的数没有符号位。,常用“0”表示正号,“1”表示负号。,机器数的真值: 按一般习惯书写形式,即,正负号加绝对值表示的数。,机器数与真值,例如:真值为1101的一种机器数形式为?,01101,真值为1101的一种机器数形式为?,11101,显然,机器数形式的二进制位数受机器字长限制,因而表示的范围和精度也将受到相对限制。

7、,机器数与真值,数值数据的表示:原码、反码、补码 数值数据在内存中数据一般采用补码表示。,若符号位为0,则 表示正数,若符号位为1,则表示负数,表示方法规定: 最高位作为符号位,其余各位代表数值本身的绝对值(以二进制表示).,数值数据的原码表示,1011,真值,原码,-1011,0.1011,-0.1011,00001011,10001011,0.1011000,1.1011000,例1 假设用一个字节表示一个整数,求+7和-7的原码 解: (7 )原,00000111,10000111,(7 )原,例2,数值数据的原码表示,(0 )原 (0 )原,例3 假设用一个字节来表示一个整数,求0和0。

8、的原码表示,解:,00000000,10000000,故可知: 0的原码不唯一,数值数据的原码表示,解: (7 )反 (7 )反,表示方法规定: 1.一个数如果值为正,则它的反码与原码相同 2.一个数如果值为负,则将其符号位置为 1,其余各位为对原码的相应数据位取反.,例1 假设只用一个字节来表示一个整数,求+7和-7的反码,00000111,11111000,数值数据的反码表示,解: (0 )反 (0 )反,例2. 假设只用一个字节来表示一个整数,求0和0的反码表示,故可知: 0的反码不唯一,00000000,11111111,数值数据的反码表示,“补码”的原理,表示方法规定: 1、正数的补。

9、码、反码、原码相同. 2、对于负数的补码,则将其最高位置为 1,其余各位为对原码的相应数据位取反,然后再对整个数加1.,数值数据的补码表示,例1 假设只用一个字节来表示一个整数,求+7和-7的补码,解: (7 )补00000111,(7 )补,1111000,1,+1,11111001,数值数据的补码表示,注意:零的补码表示是唯一的,故 : (0 )补00000000= (0 )补,例2. 假设只用一个字节来表示一个整数,求0和0的补码表示,(0 )补00000000,(0 )补11111111, 1,00000000,1,进位自然舍去,X为负数时 x补= x反+1,数值数据的补码表示,十进制。

10、数 原码表示 反码表示 补码表示 4 00000100 00000100 00000100 3 00000011 00000011 00000011 2 00000010 00000010 00000010 1 00000001 00000001 00000001 0 00000000 00000000 00000000 -0 10000000 11111111 -1 10000001 11111110 11111111 -2 10000010 11111101 11111110 -3 10000011 11111100 11111101 -4 10000100 11111011 111111。

11、00 -5 10000101 11111010 11111011,为什么用补码,计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法.如果用原码做减法: 十进制: (1) 10 - (1)10 = (1)10 + (-1)10 = (0)10 二进制: (1)原= 00000001 (-1)原= 10000001 (00000001)原 + (10000001)原 = (1000010)原 =(-2)10 显然不正确 问题出现在带符号位的负数,为什么用补码,如果用反码做减法: (1)反= 00000001 (-1)原= 11111110 (00000001)反 + (111111。

12、10)反 = (11111111)反 = (-0 ) 有问题。 如果用补码做减法: (1)补=00000001 (-1)补=11111111 (00000001)补+(11111111)补 = (00000000)补=(0) 正确。,例3 假设只用一个字节来表示一个整数,求+7-6的值 解 : (7 )补00000111 (6 )补11111010,00000111 + 11111010,100000001,进位自然舍去,为什么用补码,对补码再求一次补,会得到该数的原码。,已知补码为:11111010 10000101 + 1 10000110 (-6),为什么用补码 计算机中采用补码的设计目。

13、的是: 使符号位能与有效值部分一起参加运算,从而简化运算规则。补码机器数中的符号位,并不是强加上去的,是数据本身的自然组成部分,可以正常地参与运算。 使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、c等其他高级语言中使用的都是原码。,X原、X反 、X补用“0”表示正号,用“1”表示负号 如果X为正数,则X原=X反 =X补。 如果X为0,则 X 补 有唯一 编码, X原、X反 有两种编码。 对补码再求一次补,会得到该数的原码,总结,在计算机中没有专门表示小数点的位,小数点的位置是约定默认的。 定点数:小数点位置固定的数。 浮点数:小数点位置可以变动的数。,先澄清一个概念,浮点数并不一定等于小数,定点数也并不一定就是整数。 所谓浮点数就是小数点在逻辑上是不固定的,而定点数只能表示小数点固定的数值,具用浮点数或定点数表示某哪一种数要看用户赋予了这个数的意义是什么。,定点小数:,定点整数:,定 点 数,符号位,隐含小数位,符号位,隐含小数位,定点数表示简单直观,但运算值表示的范围较小,运算时容易产生溢出。 为增大数值的表示范围,防止溢出,采用浮点数表示法。类似于科学计数法。,31 30 24 23 22 0,浮 点 数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值