《计算机中的数制表.ppt》由会员分享,可在线阅读,更多相关《计算机中的数制表.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、补充的主要内容补充的主要内容 数制的基本概念数制的基本概念 计算机中的数制计算机中的数制 数制间的转换数制间的转换 计算机数值数据的机内表示计算机数值数据的机内表示基数基数 是最大进位数是最大进位数(进制数进制数),例如,例如:十进制基数为十进制基数为10;10;六六 十进制十进制(时间时间)的基数为的基数为6060等等数符数符 每个数位上的值。每个数位上的值。例如例如:234:234 百位数符为百位数符为2 2,十位数符,十位数符3 3,个位数符,个位数符4 4。位数位数 数符的个数。例如数符的个数。例如:十进制数十进制数 234 234 的位数为的位数为3 3;二进制数二进制数 11010
2、011 11010011 的位数为的位数为 8 8。位权:不同位上数字的单位值位权:不同位上数字的单位值一、一、数制的基本概念数制的基本概念二、二、计算机的数制计算机的数制常用计数制的基数和数字符号常用计数制的基数和数字符号计算机的数制计算机的数制十进制数(十进制数(十进制数(十进制数(DecimalDecimalDecimalDecimal)特点:数值用特点:数值用0 09 9表示,逢十进一。表示,逢十进一。十进制通式为:十进制通式为:十进制通式为:十进制通式为:s10=a n10 n-1+.+a1100+a-1 10-1+.+a-m 10-m小数部分,小数部分,m m为小数部分位数为小数部
3、分位数整数部分,整数部分,n n为整数部分位数为整数部分位数其中:其中:“10”“10”为十进制数的基数为十进制数的基数计算机的数制计算机的数制(2 2 2 2)二进制数)二进制数)二进制数)二进制数(Binary)(Binary)(Binary)(Binary)特点特点 :0 0 或或 1 1,逢二进一。逢二进一。二进制数的通式为:二进制数的通式为:s2=an 2 n-1 +.+a120 +a-12-1 +a-m2-m 例如:例如:1+1=10 1+1=10 11+1=100 11+1=100 而不是等于而不是等于1212计算机的数制计算机的数制(3 3 3 3)八进制)八进制)八进制)八进
4、制(Octal)(Octal)(Octal)(Octal)特点:数字为特点:数字为0 07 7,逢八进一,逢八进一。八进制数的通式为:八进制数的通式为:八进制数的通式为:八进制数的通式为:s8 =an8 n-1 +.+a18 0 +a-18-1+a-m8-m 例如:例如:7+1=10 7+1=10 而不是等于而不是等于8 8(4 4 4 4)十六进制)十六进制)十六进制)十六进制(Hexadecimal)(Hexadecimal)(Hexadecimal)(Hexadecimal)特点:每位可取数字特点:每位可取数字0 09 9和英文字母和英文字母A A(1010)、)、B(11B(11)、)
5、、C(12C(12)、)、D(13D(13)、)、E(14E(14)、)、F(15)F(15)的任意一的任意一个,逢十六进一。个,逢十六进一。十六进制数的通式为:十六进制数的通式为:十六进制数的通式为:十六进制数的通式为:S S1616=a=an n16 16 n-1 n-1 +.+a+.+a1 116160 0 +a a-1-11616-1-1+.+a+.+a-m-m1616-m-m 例如:例如:9+1=A 9+1=A 而不是等于而不是等于1010 F+1=10 F+1=10计算机的数制计算机的数制十进制(十进制(D)D)二进制二进制(B)(B)八进制八进制(O)(O)十六进制十六进制(H)
6、(H)0 0 0 0 1 01 1 12 10 2 23 11 3 34 100 4 45 101 5 56 110 6 6 7 111 7 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B计算机的数制计算机的数制三、数制间的转换三、数制间的转换十进制数十进制数非十进制数非十进制数非十进制数非十进制数十进制数十进制数二、八、十六进制之间的转换二、八、十六进制之间的转换 8 75 3 8 9 1 8 1 1 0余数法:余数法:除基数取余数、由下而上排列。示例:示例:十进制整数十进制整数 非十进制整数非十进制整数2 75 1 2 37 1 2 18 0
7、 2 9 1 2 4 0 2 2 0 2 1 1 0又例:又例:十进制小数十进制小数 非十进制小数非十进制小数例:计算(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非十进制数非十进制数 十进制数十进制数 整数从右向左三位并一位整数从右向左三位并一位 小数从左向右三位并一位小数从左向右三位并一位二进制二进制 八进制八进制二、八与十六进制之间的转换二、八
8、与十六进制之间的转换一位拆三位一位拆三位一位拆四位一位拆四位 整数从右向左四位并一位整数从右向左四位并一位 小数从左向右四位并一位小数从左向右四位并一位二进制二进制 十六进制十六进制 100110110111.010 100(4 6 6 7.2 4)8存在计算机内存中的数据都是二进制形式。四、数据的机内表示四、数据的机内表示机器表示:机器表示:机器表示:机器表示:0 0 1 0 1 0 1 1符号位符号位数值部分数值部分1 0 1 0 1 0 1 1数值部分数值部分(+53)8(-53)8真真值值符号位符号位机器数与真值机器数与真值机器数:机器数:对于有符号的数,机器中约定某一位表示符号,对于
9、有符号的数,机器中约定某一位表示符号,连同数符一起数码化的数。无符号的数没有符号位。连同数符一起数码化的数。无符号的数没有符号位。常用常用“0”表示正号,表示正号,“1”表示负表示负号。号。机器数的真值:机器数的真值:按一般习惯书写形式,即,正负号加绝对值表示按一般习惯书写形式,即,正负号加绝对值表示的数。的数。机器数与真值机器数与真值例如:真值为例如:真值为1101的一种机器数形式为?的一种机器数形式为?01101真值为真值为1101的一种机器数形式为的一种机器数形式为?11101 显然,机器数形式的二进制位数受机器字长限显然,机器数形式的二进制位数受机器字长限制,因而表示的制,因而表示的范
10、围和精度范围和精度也将受到相对限制也将受到相对限制机器数与真值机器数与真值数值数据的表示:原码、反码、补码数值数据的表示:原码、反码、补码数值数据在内存中数据一般采用补码表示。数值数据在内存中数据一般采用补码表示。若符号位为若符号位为0,则,则 表示正数表示正数 若符号位为若符号位为1,则表示负数,则表示负数 表示方法规定表示方法规定:最高位作为符号位最高位作为符号位,其余各位代表其余各位代表数值本身的绝对值数值本身的绝对值(以二进制表示以二进制表示).).数值数据的原码表示数值数据的原码表示1011真值真值原码原码 -10110.1011-0.101100001011100010110.10
11、110001.1011000 例例1 1 假设用一个字节表示一个整数,求假设用一个字节表示一个整数,求+7+7和和-7-7的原码的原码 解:解:(7 7 )原原 0000011110000111(7 7)原原例例2 2数值数据的原码表示数值数据的原码表示 (0 0)原原 (0 0)原原例例3 3 假设用一个字节来表示一个整数,求假设用一个字节来表示一个整数,求0 0和和0 0的原的原码表示码表示解:解:0 0000000000000001 100000000000000故可知:故可知:0 0的原码不唯一的原码不唯一数值数据的原码表示数值数据的原码表示解:解:(7 7)反反 (7 7)反反表示方
12、法规定:表示方法规定:1.1.一个数如果值为一个数如果值为正正,则它的反码与原码则它的反码与原码相同相同 2.2.一个数如果值为一个数如果值为负负,则将其则将其符号位置为符号位置为 1 1,其余各位为其余各位为对对原码的相应数据位取反原码的相应数据位取反.例例1 1 假设只用一个字节来表示一个整数,求假设只用一个字节来表示一个整数,求+7+7和和-7-7的反码的反码0000011111111000数值数据的反码表示数值数据的反码表示解:解:(0 0 )反反 (0 0 )反反例例2.2.假设只用一个字节来表示一个整数,求假设只用一个字节来表示一个整数,求0 0和和0 0的反码表示的反码表示故可知
13、:故可知:0 0的反码不唯一的反码不唯一00000000000000001111111111111111数值数据的反码表示数值数据的反码表示“补码补码”的原理的原理表示方法规定表示方法规定:1 1、正正数的补码、反码、原码数的补码、反码、原码相同相同.2 2、对于、对于负负数的补码,则将其数的补码,则将其最高位置为最高位置为 1 1,其,其余各位为对余各位为对原码的相应数据位取反原码的相应数据位取反,然后再对整,然后再对整个数个数加加1 1.数值数据的补码表示数值数据的补码表示例例1 1 假设只用一个字节来表示一个整数,求假设只用一个字节来表示一个整数,求+7+7和和-7-7的补码的补码解:解
14、:(7 )补)补00000111(7 )补)补 11110001+111111001数值数据的补码表示数值数据的补码表示注意:零的补码表示是唯一的注意:零的补码表示是唯一的故故:(0 )补补00000000=(0 )补补 例例2.2.假设只用一个字节来表示一个整数,假设只用一个字节来表示一个整数,求求0 0和和0 0的补码表示的补码表示(0 )补补00000000(0 )补补11111111 1000000001进位自然舍去进位自然舍去 X为负数为负数时 x补补=x反反+1数值数据的补码表示数值数据的补码表示十进制数十进制数 原码表示原码表示 反码表示反码表示 补码表示补码表示4 000001
15、00 00000100 000001004 00000100 00000100 000001003 00000011 00000011 000000113 00000011 00000011 000000112 00000010 00000010 000000102 00000010 00000010 000000101 00000001 00000001 000000011 00000001 00000001 000000010 00000000 00000000 000000000 00000000 00000000 00000000-0 10000000 11111111-0 10000
16、000 11111111-1 10000001 11111110 11111111-1 10000001 11111110 11111111-2 10000010 11111101 11111110-2 10000010 11111101 11111110-3 10000011 11111100 11111101-3 10000011 11111100 11111101-4 10000100 11111011 11111100-4 10000100 11111011 11111100-5 10000101 11111010 11111011-5 10000101 11111010 111110
17、11为什么用补码为什么用补码计算机的硬件结构中只有加法器,所以大部分的运算计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法都必须最终转换为加法.如果用原码做减法:如果用原码做减法:十进制:十进制:(1)(1)1010-(1)-(1)1010=(1)=(1)1010+(-1)+(-1)1010=(0)=(0)1010二进制:二进制:(1 1)原原=00000001 (-1)=00000001 (-1)原原=10000001=10000001(00000001)(00000001)原原+(10000001)+(10000001)原原=(1000010)=(1000010)原原=(
18、-2)=(-2)1010显然不正确显然不正确问题出现在带符号位的负数问题出现在带符号位的负数 为什么用补码为什么用补码如果用反码做减法:如果用反码做减法:(1 1)反反=00000001 =00000001 (-1-1)原原=11111110=11111110(00000001)(00000001)反反+(11111110)+(11111110)反反 =(11111111)=(11111111)反反=(-0)=(-0)有问题。有问题。如果用补码做减法:如果用补码做减法:(1)(1)补补=00000001 (-1)=00000001 (-1)补补=11111111=11111111(000000
19、01)补补+(11111111)+(11111111)补补=(00000000)=(00000000)补补=(0)=(0)正确。正确。例例3 3 假设只用一个字节来表示一个整数,求假设只用一个字节来表示一个整数,求+7-6+7-6的值的值 解解 :(7 7 )补)补0000011100000111 (6 6 )补)补1111101011111010 00000111+11111010 100000001进位自然舍去进位自然舍去为什么用补码为什么用补码 对补码再求一次补,会得到该数的原码。对补码再求一次补,会得到该数的原码。已知补码为:已知补码为:1111101011111010 1000010
20、1 10000101 +1+1 10000110 10000110 (-6-6)为什么用补码为什么用补码计算机中采用补码的设计目的是:计算机中采用补码的设计目的是:使符号位能与有效值部分一起参加运算,使符号位能与有效值部分一起参加运算,从而简化运算规则。补码机器数中的符号从而简化运算规则。补码机器数中的符号位,并不是强加上去的,是数据本身的自位,并不是强加上去的,是数据本身的自然组成部分,可以正常地参与运算。然组成部分,可以正常地参与运算。使减法运算转换为加法运算,进一步简化使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。计算机中运算器的线路设计。所有这些转换都是在计算机的最底层
21、进行的,所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、而在我们使用的汇编、c c等其他高级语言中等其他高级语言中使用的都是原码。使用的都是原码。XX原、原、XX反反 、XX补用补用“0”0”表示正号,表示正号,用用“1”1”表示负号表示负号如果如果X X为正数,则为正数,则XX原原=X=X反反 =X=X补。补。如果如果X X为为0 0,则,则 X X 补补 有唯一有唯一 编码,编码,XX原、原、XX反反 有两种编码。有两种编码。对补码再求一次补,会得到该数的原码对补码再求一次补,会得到该数的原码总结在计算机中没有专门表示小数点的位,小在计算机中没有专门表示小数点的位,小数点的位置
22、是约定默认的。数点的位置是约定默认的。定点数:定点数:小数点位置固定的数。小数点位置固定的数。浮点数:浮点数:小数点位置可以变动的数。小数点位置可以变动的数。定点数与浮点数定点数与浮点数先澄清一个概念,浮点数并不一定等于小先澄清一个概念,浮点数并不一定等于小数,定点数也并不一定就是整数。数,定点数也并不一定就是整数。所谓浮点数就是小数点在逻辑上是不固定所谓浮点数就是小数点在逻辑上是不固定的,而定点数只能表示小数点固定的数值,的,而定点数只能表示小数点固定的数值,具用浮点数或定点数表示某哪一种数要看具用浮点数或定点数表示某哪一种数要看用户赋予了这个数的意义是什么。用户赋予了这个数的意义是什么。0
23、100000010000011定点小数:定点小数:定点整数:定点整数:符号位符号位隐含小数位隐含小数位符号位符号位隐含小数位隐含小数位定点数表示简单直观,但运算值表示的范定点数表示简单直观,但运算值表示的范围较小,运算时容易产生溢出。围较小,运算时容易产生溢出。为增大数值的表示范围,防止溢出,采用为增大数值的表示范围,防止溢出,采用浮点数表示法。类似于科学计数法。浮点数表示法。类似于科学计数法。如:如:0.27E-2 +0.27*100.27E-2 +0.27*10-2-231 30 24 23 22 31 30 24 23 22 0 0如:如:0.27E-2 +0.27*100.27E-2 +0.27*10-2-2阶符阶符 阶码阶码 数符数符 尾数尾数 阶码部分阶码部分 尾数部分尾数部分 阶码用定点整数,尾数用定点小数表示阶码用定点整数,尾数用定点小数表示