《数制及其转换1.ppt》由会员分享,可在线阅读,更多相关《数制及其转换1.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数制及其转换1、定义:在采用进位计数的数字系统中,如果只用N个基本符号(如:0、1、2、N-1)表示数值,则称为基N数制N N称为该数制的基数举例:N=10举例:N=2指常用的十进制,符号0、1、2、3、4、5、6、7、8、9基本的符号为0和1,为二进制一、进位计数制一、进位计数制由0、1、2、N-1这N个数组成逢逢N进一进一,基数为N如:十进制数逢十进一。二进制数逢二进一左移一位扩大N倍(相当于乘N),右移一位缩小N倍(相当于除N)采用位权位权表示法。任意一位N进制数M可表示为:2、进位计数制有两个基本特点:其中D i为数制采用的基本数符;Ni为权;N为基数例:二进制数10111.01 可表
2、示为:任何一种数制表示的数都可以写成按位权展开的多项式之和。例:十进制数,3058.72 可表示为:3103+0102+5101+8100+710-1+210-2124+023+122+121+120+02-1+12-2十进制二进制八进制十六进制0 0 0 01 1 1 12 10 2 2 3 11 3 34 100 4 45 101 5 56 110 6 67 111 7 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B12 1100 14 C13 1101 15 D14 1110 16 E15 1111 17 F16 10000 20 103、
3、几种常用的进位计数制二、数制的相互转换二、数制的相互转换1、N进制转换为十进制方法:将N进制数按权展开运算后,可得到十进制数注意:数位的确定不要弄错 例1:例2:求(1100101.101)2 的等值十进制(1100101.101)2=126+125+024+023+122 +021+120+12-1+02-2+12-3 =64+32+0+0+4+0+1+0.5+0.125 =(101.625)10即 (1100101.101)2=(101.625)102、十进制转换为N进制1)、整数部分整数部分方法:除N取余法。余数依次从右到左排列,即得到所转换的N进制第一位余数是低位,最后一位余数是高位;
4、一直除到商为0;举例注意:2、十进制转换为N进制二、数制的相互转换2)、小数部分小数部分方法:乘N取整法。整数依次从左到右排列第一位整数是小数中的最高位;一直乘到小数部分为零;若遇乘N后,小数部分的积永不为零,则取有限位作为近似值;计算机中十进制小数转换为N进制小数时,有时会带来误差。注意:注意:十进制小数乘2取整法,一般乘到积的小数部分为0,但有时乘2取整后,小数部分的乘积永不为0,此时可根据精度要求取有限位作为近似值,因此计算机中十进制小数转换为二进制小数有时会带来误差。例如(0.1)10=(0.000110011001100.)2 取有限位(0.1)10=(0.000110011)2 整
5、数的转换可采用除除2 2取取余余法法,即把要转换的十进制数的整数部分不断除以2,并记下每次除所得余数,直到商为0为止,将所得余数,从最后一次除得余数读起,就是这个十进制整数所对应的二进制整数。小数部分的转换采用乘乘2 2取取整整法法,被转换的小数部分,每次相乘后,所得乘积的整数部分就为对应的十进制数,将所得小数从第一次乘得整数读起,就是这个十进制小数所对应的二进制小数。十进制数转换为二进制数 整数:除2取余 小数:乘2取整 2|2 3 7 1 0.6 2 5 2|1 1 8 0 取 2 2|5 9 1 1 1.2 5 0 2|2 9 1 值 0.2 5 2|1 4 0 2 2|7 1 方 0
6、0.5 0 2|3 1 2 2|1 1 向 1 1.0 0数制间转换进位计数制8|2 3 7|2 9|3 0 整 数:除8取余 余 数5 5388低位高位小 数:乘8取整0.6 2 5 85.0 0 0 5 题目:1、(25)10 =(?)2110012、(101A)16=(?)1041223、(0.3125)(?)0.01013、非十进制数间的转换下面看一下二、八、十六进制间的特殊转换方法:方法:一般采用上述方法的结合。N1进制十进制N2进制按权展开整:除N2取余小:乘N2取整原因:存在特殊关系:81=23;161=243、非十进制数间的转换二进制 八进制、十六进制(收缩法)3位二进制 =1
7、位八进制;4位二进制 =1位十六进制;二进制、八进制与十六进制之间的互换3、非十进制数间的转换二进制、八进制与十六进制之间的互换八进制、十六进制 二进制(扩展法)1位八进制 =3 位二进制1位十六进制 =4 位二进制;3、非十进制数间的转换二进制、八进制与十六进制之间的互换八进制 十六进制(通过二进制转换)1位八进制 =3 位二进制1位十六进制 =4 位二进制 方法:通过扩展法扩展法,把八进制二进制 再通过收缩法收缩法,把二进制十六进制3、非十进制数间的转换 在整数转换中,是从小数点开始,由右往左确定二进制的三位(或四位),取后不够,则在数码前补0,添足位数。注意:在小数转换中,是从小数点开始
8、,由左往右确定二进制的位数,取后不够,在末位补0,添足位数。例例5 将(将(741.566)8转换成为二进制数转换成为二进制数解解 (741.566)8=数制之间的转换例例6 将(将(1011010.10111)2转换为十六进制数转换为十六进制数解解 (1011010.10111)2(111100001.101110110)2=(01011010.10111000)2 =(5A.B8)16即即(1011010.10111)=(5A.B8)16 各种数制都有算术运算规则(加、减、乘、除);二进制数独有逻辑运算,又是计算机唯一识别和处理的数,所以,我们选取二进制数作为讲解的主要对象。三、数制运算三
9、、数制运算二进制数的算术运算规则二进制数的算术运算规则(有进位和借位有进位和借位)加法 1101 减法 1101 +1011 1011 11000 0010 乘法 1101 除法 1011 (略)1101 1101 0000 1101 10001111 逻辑值只有两个“T”与“F”或“Y”与“N”;我们知道,二进制数也只有两个 值“1”与“0”,所以可用二进制数表示逻辑值,并充分利用逻辑运算的特点,快速地进行信息的处理。二进制数的逻辑运算二进制数的逻辑运算注意:运算按位进行,没有进位和借位运算按位进行,没有进位和借位。逻辑加法+或(或运算)例如:0+0=0 0+1=1 1+0=1 1+1=1
10、或表示成 00=0 01=1 10=1 11=1逻辑乘法 或(与运算)例如:00=0 01=0 10=0 11=1 或表示成 0 0=0 0 1=0 1 0=0 1 1=1逻辑非运算 对0取非,则为1;对1取非,则为0;逻辑异或运算 若两个数相同,值为0;不同,则为1;即 0 0=0;0 1=1;1 1=0。二进制数的逻辑运算二进制数的逻辑运算二进制数的逻辑运算二进制数的逻辑运算例:若A=(1011)2 ,B=(1101)2 ,求AB;AB;的值。1011 11011011 110111111001AB=(1111)2;AB=(1001)2;四、二进制数在计算机中的表示1、真值和机器数2)、真
11、值数1)、机器数3)、溢出4)、数的范围机器数表示的范围受到字长和数据类型的限定用八位字长表示一个整数,则最大正数为01111111,即127。若超出127,则溢出。计算机中的数是用二进制来表示的,数的符号也是用二进制表示的,把一个数连同其符号在机器中的表示加以数值化,这样的数称为机器数。一般用最高位来表示符号.正正数数用0表示,负数负数用1表示。例:2、数的定点和浮点表示2)、定点整数1)、定点小数计算机内表示的数,主要分为定点小数、定点整数、与浮点数。定点数为小数点位置固定的数;浮点数为小数点位置不固定的数;假设机器字长为16位,符号位为1位+1101101的存放形式为 000000000
12、1101101-0.1101101 的存放形式为1110110100000000它包括两个部分:一是阶码(表示指数,记作E);另一部分是尾数(表示有效数字,记作)。设有任意数可以表示为:2,具体表示形式为:3)、浮点数2、数的定点和浮点表示对于浮点数往往要进行规格化规格化处理:尾数部分的最高位必须不为零,数的实际大小可以通过移动阶码进行调整。例:(110.011)1.100112+10 =11001.12-10 =0.1100112+11浮点数表示形式0110 110011如一个32位浮点数,阶码用8位表示,尾数用24位规格化补码表示0 00000110 1100110000000000000
13、0000例:假设机器字长为16位,符号位为1位,阶码4位,尾数12位+101.1101=0.1011101211,其浮点数存放形式为0 011 0 10111010000阶码的位数决定了表示数的范围;尾数的位数决定了所表示数的精度;在计算机中对带符号数的表示方法有原码原码、补码补码和反码反码三种形式。1)原码规定符号位用数码0表示正号,用数码1表示负号,数值部分按一般二进制形式表示数的绝对值。7:00000111 0:000000007:10000111 0:10000000、机器数的表示零有两种表示方法在计算机中对带符号数的表示方法有原码原码、补码补码和反码反码三种形式。7:00000111
14、 0:000000007:11111000 0:11111111)反码规定正数的反码和原码相同,负数反码是对该数的原码除符号位外各位求反、机器数的表示零有两种表示方法则N1原=01000100 N2原=11000100N1反=01000100 N2反=10111011 N1补=01000100 N2补=101111003)补码正数的补码与原码相同,负数补码则先对该数的原码除符号外各位取反,然后末位加7:00000111 0:000000007:11111001 0:00000000零有唯一编码例:N1=+1000100,N2=1000100C语言中n字符型数据可以当作整形数来看待,并以二进制方
15、式存放;nC语言中,正数时总为其原码,负数时为其补码。由负数求其补码的方法:最高位恒为1,剩余位为其原码对应求反,再加1。如:10000101(-5的原码)-11111010(-5的反码)-11111011(得到补码)由补码求其负数方法:最高位恒为1,剩余位减1,再各位对应求反。如:11111111(补码)-11111110 -10000001(-1的原码)可见,若11111111为正数的原码,则其大小为:28-1=255若用8位来表示正数范围为0255若用8位来表示负数,则范围为-128(10000000)127(01111111)见ASC码表:包含类常用字符。数字字符:英文字母:a z 常用符号:常用的个 控制符号:个专用控制符号 五、西文字符编码五、西文字符编码美国标准信息交换码ASCII码ASCIIASCII码的码的码的码的十进制表示十进制表示十进制表示十进制表示:SPSP(空格)空格)空格)空格):32:32 0-9:48-570-9:48-57 A-Z:65-90A-Z:65-90 a-z:97-122a-z:97-122
限制150内