《微机接口第2章计算机中的数值》由会员分享,可在线阅读,更多相关《微机接口第2章计算机中的数值(55页珍藏版)》请在金锄头文库上搜索。
1、第2章,计算机中的数,本章主要内容,2.1 数和数制,1、计数制数制也称为计数制是指用一组固定的数字符号和统一的规则表示数的方法。对于任意r进制数,可以用下式表示:,2.1.1 数制的表示,2.1.1 数制的表示,ai为数码,每一种进制数都有固定的数字符号,这个符号就是数码。i为数位,数位是指数码在一个数中所处的位置。r为基数,基数是指在某计数制中,每个数位上能使用的数码的个数。ri为权,权是基数的幂,这个幂次由数位决定。例如十进制数据 56.28=5101 + 6100 + 210-1 + 810-2,2.1.1 数制的表示,2、计算机中常用的计数制在日常生活中,人们最常用的是十进制计数制;
2、 计算机中,为了便于数的存储和表示,使用的是二进制计数制;由于二进制数据书写和记忆不方便,在计算机系统中还常使用八进制和十六进制等计数制。,注:为了便于计算机识别,汇编程序规定,当十六进制数的首字符为字母时,前面加数字0。,2.1.1 数制的表示,2.1.2 数制之间的转换,1、其他数制转为十进制数:方法:按权展开,每位数字乘以其权所得到的乘积之和即为其所表示的数的值。,【例2-1】将1010.101B、23.4Q和56.78H转换成十进制。解:1010.101B 123 + 022 +121 + 020 +121 + 022 +123 10.625D23.4Q 2 81 + 3 80 + 4
3、 81 19.5D0FA3.4H 15 162 + 10 161 + 3 160 + 4 161 4003.25D,2.1.2 数制之间的转换,2、十进制数转换为其它数制数把十进制数转换为其它数制数的方法很多,通常采用的方法有降幂法及乘除法。降幂法假设要转换的十进制数为N,找出最接近N并小于等于N的r进制位权值ri;N=NCri,(C0且Nri);记录这个C,作为i位的位码ai; i=i1,得到下一个位权值ri;重复2、3、4 ,直至N为0或达到所需精度。,2.1.2 数制之间的转换,2、十进制数转换为其它数制数乘除法整数部分: 除以基数取余,直至商为0;小数部分: 乘以基数取整,直至积为整数
4、或小数位数由精度定。,2.1.2 数制之间的转换,【例2-2】把十进制数117.8125转换成二进制数,转换结果 : 117.8125D=1110101.1101B,【例2-2】把十进制数117.8125转换成二进制数。,转换结果 : 117.8125D=1110101.1101B,【例2-3】把十进制数48956转换成十六进制数,转换结果 :48956D= BF3CH,【例2-3】把十进制数48956转换成十六进制数,转换结果 :48956D= BF3CH,3、其它数制之间的转换二进制与八进制数之间的转换由于八进制数以23为基数,所以3位二进制数对应1位八进制数,对应关系如下所示。二进制数转
5、换为八进制数时,以小数点为界,整数部分向左,小数部分向右,每3位二进制数为一组,用1位八进制数表示,不足三位的,整数部分高位补0,小数部分低位补0。八进制数转换为二进制数采用与上述方法相反的方法,把每位八进制数用3位二进制数表示即可。,2.1.2 数制之间的转换,【例2-4】把数11010.101B转换为八进制数。11010.101B 011 010 .101B 32.5Q【例2-5】把数34.56Q转换为二进制数。34.56Q 011 100.101 110B 11100.101B,2.1.2 数制之间的转换,二进制与十六进制数之间的转换:由于十六进制数以24为基数,所以4位二进制数对应1位
6、十六进制数,对应关系如下表所示。转换方法和二进制与八进制数之间的转换方法类似,区别是,这里为4位一组。,【例2-6】把二进制数11010.101B转换为十六进制数。11010.101B 0001 1010.1010B 15.AH【例2-7】把十六进制数56.78H转换为二进制数。56.78H 0101 0110.0111 1000B 1010110.01111B,2.1.3 二进制数的运算,算术运算加法规则:逢二进一。即: 0 + 0 0; 1 + 0 1; 0 + 1 1; 1 + 1 10;减法规则:借一当二。即: 0 0 0; 1 0 1; 0 1 1; 1 1 0;乘法规则:任何数乘以
7、0得0,1乘以任何数得该数。即: 0 00; 0 10; 1 00; 1 11;除法规则:0除以任何数得0,任何数除以1得该数,除数不得为0。即: 010 ; 111 。,2.1.3 二进制数的运算,逻辑运算,“与”运算(AND) “或”运算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1“非”运算(NOT) “异或”运算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0,2.1.3 二进制数的运算,逻辑运算【例2-8】多位二进制算术运算。 1010 1010B +
8、 0101 1101B 1 0000 0111B 1010 1010B0101 1101B 0100 1101B【例2-9】多位二进制逻辑运算。 1010 1010B 0101 1101B 0000 1000B 1010 1010B 0101 1101B 1111 1111B 1010 1010B 0101 1101B 1111 0111B,2.1.3 二进制数的运算,补充1:十六进制数的算术运算十六进制数进行算术运算时逢十六进一,借一为十六;例如:,05C3H + 3D25H ? 3D25H - 05C3H ?,加法:两个一位数之和为S,若S=16,结果用S-16取代S,并进位1。,减法:于
9、十进制相似,够减时直接相减,不够时服从向高位进1为16的规则。,2.1.3 二进制数的运算,补充2:十六进制数的逻辑运算十六进制数运算时转换成二进制数,按位进行操作;例如:05C3H 3D25H = 0000 0110 1100 0011B 0011 1101 0010 0101B = 0000 0000 0000 0001B = 0001H,2.2带符号二进制数的表示与运算,数分为带符号数和无符号数两种类型;无符号数不分正负,表示无符号数的各二进制数位都是数值位;带符号数有正数和负数之分。在计算机中,用0或1来表示数的正负。在计算机中,一个数连同其符号在内的数值化的表示形式称为机器数。一般用
10、最高位表示数的符号。而这个数本身的值称为真值。机器数可以用不同编码方法表示。常用的编码方式有:原码、反码和补码。,2.2.1带符号二进制数的表示,1、原码表示法:符号 + 绝对值最高位表示符号(正数用0,负数用1)其他位表示数值位数x的原码记作x原 ,如机器字长为n,则原码的定义如下:,1、原码,例如当机器字长n8时, +0D原 0000 0000 , 0D原 1000 0000 +1D原 0000 0001 , 1D原 1000 0001 +45D原 0010 1101 ,45D原 1010 1101 +127D原 0111 1111 , 127D原 1111 1111 0 的表示不惟一,1
11、、原码,按照定义,设n为字长,则原码能表示的整数范围是:(2n-11)+(2n-11);例如:8位二进制原码表示的整数范围是 127D+127D;16位二进制原码表示的整数范围是 32767D+32767D。,2、反码,反码表示法:一个正数的反码和原码相同;一个负数的反码的符号位与其原码的符号位相同,其余位通过将其原码的数值部分按位求反得到。数x的反码记作x反 ,如机器字长为n,则反码的定义如下:,2、反码,例如当机器字长n8时, +0D反0000 0000 , 0D反1111 1111 +1D反0000 0001 , 1D反1111 1110 +45D反0010 1101 , 45D反110
12、1 0010 +127D反0111 1111 , 127D反1000 0000 0 的表示不惟一,2、反码,按照定义,设n为字长,则反码能表示的整数范围是:(2n-11)+(2n-11);例如:8位二进制反码表示的整数范围是 127D+127D;16位二进制反码表示的整数范围是 32767D+32767D。,3、补码,补码表示法:一个正数的补码和反码、原码相同;一个负数的补码的符号位与其原码的符号位相同,其余位可通过将其反码数值部分加1得到。 数x的补码记作x补 ,如机器字长为n,则补码的定义如下:,3、补码,例如当机器字长n8时, +0D补0000 0000 , 0D补0000 0000 +1D补0000 0001 , 1D补1111 1111 +45D补0010 1101 , 45D补1101 0011 +127D补0111 1111 , 127D补1000 0001 0 的表示惟一,