




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-6-121第第2章章 计算机中的信息表示及运计算机中的信息表示及运算算 本章要点:u掌握数据的表示及其转换u掌握数值型数据的表示方法u重点掌握数的运算u掌握文字信息的编码及表示2022-6-1222.1 2.1 数据的表示及其转换数据的表示及其转换计算机处理的信息可分为两大类计算机处理的信息可分为两大类 :一类是按进位计算制表示的有大小、正负之分的数值一类是按进位计算制表示的有大小、正负之分的数值 信息;信息; 另一类是非数值信息,如字符、文字、图像、逻辑数据等另一类是非数值信息,如字符、文字、图像、逻辑数据等 计算机内部所有信息都要转换成计算机内部所有信息都要转换成0 0和和1 1
2、表示的二进制编码表示的二进制编码 1.1.计算机中信息的表示计算机中信息的表示 目前的电子计算机是一种电子设备,只认识电信目前的电子计算机是一种电子设备,只认识电信号,即:电平高低、电路通断、晶体管的导通与截止、号,即:电平高低、电路通断、晶体管的导通与截止、电子开关的开与关。用电子开关的开与关。用0 0和和1 1表示一个二进制位(电信表示一个二进制位(电信号的两个状态),计算机中的任何信息都是号的两个状态),计算机中的任何信息都是0 0与与1 1的特的特定组合。定组合。信息表示的单位:信息表示的单位:ubit(bit(比特比特): ): 一个二进制位。一个二进制位。uByte(Byte(字节
3、字节):8):8个一个二进制位。个一个二进制位。uWord(Word(字字):16):16位机中是位机中是2 2个字节。个字节。2.2.数制表示数制表示 计算机汇编语言中常用的计数制有十计算机汇编语言中常用的计数制有十进制数(进制数(DecimalDecimal)、二进制数)、二进制数(BinaryBinary)、十六进制数()、十六进制数(HexadecimalHexadecimal)和八进制数(和八进制数(OctalOctal)。)。(1 1) 十进制数十进制数 最常用的十进制数,每个数位上允许选用最常用的十进制数,每个数位上允许选用0 0,1 1,2 2,9 9共共1010个不同数码中的
4、个不同数码中的1 1个,因而十进制数的基数为个,因而十进制数的基数为1010,每位,每位计满计满1010时向高位进时向高位进1 1。每个数码所表示的数值等于该数码乘以。每个数码所表示的数值等于该数码乘以一个与数码所在位有关的常数,这个常数就叫一个与数码所在位有关的常数,这个常数就叫“位权位权”,简,简称权。位权的大小是以基数为底,数码所在位置的序号为指称权。位权的大小是以基数为底,数码所在位置的序号为指数的整数次幂。它的运算规则是数的整数次幂。它的运算规则是“逢十进一,借一为十逢十进一,借一为十”。 在书写二进制时,为了区别,在数据后面紧跟一个字母在书写二进制时,为了区别,在数据后面紧跟一个字
5、母B B。例。例如如 236.75D=2*102+3*101+6*100+7*10-1+5*10-2(2 2) 二进制数二进制数 二进制只有两个记数符号二进制只有两个记数符号0 0和和1 1,它逢二进一二进制数,它逢二进一二进制数由排列起来的由排列起来的0 0和和l l组成各位的权值,从位序号组成各位的权值,从位序号0 0向左数,依向左数,依次为次为1 1,2 2,4 4,8 8等等,从位序号为等等,从位序号为-l-l向右数,依次为向右数,依次为1/21/2,1/41/4,1/81/8等等一个二进制所表示的实际值按如下公式计算:等等一个二进制所表示的实际值按如下公式计算:例如例如: :1011
6、.11B=1*23+0*22+1*21+1*20+1*2-1+1*2-2(3 3) 八进制数八进制数 八进制数是八进制数是0 0到到7 7这八个数码组成,它的基数为这八个数码组成,它的基数为8 8,各位的权值为各位的权值为8i8i。八二进制数的运算规则是。八二进制数的运算规则是“逢八进逢八进一,借一为八一,借一为八”。在书写时,为了区别,在数据后面。在书写时,为了区别,在数据后面紧跟一个字母紧跟一个字母Q Q。例如,。例如,1234Q1234Q、7654Q7654Q、54Q54Q等都是八等都是八进制。进制。(4 4) 十六进制数十六进制数 十六进制数是由十六进制数是由0 0到到9 9和和A,B
7、,C,D,EA,B,C,D,E和和F(F(小写也可以,分小写也可以,分别代表别代表1010到到15)15)这十六个数码组成的这十六个数码组成的, , 它的基数为它的基数为1616,各位,各位的权值为的权值为16i16i。它的运算规则是。它的运算规则是“逢十六进一,借一为十逢十六进一,借一为十六六”。 在书写时,为了区别,在数据后面紧跟一个字母在书写时,为了区别,在数据后面紧跟一个字母H H。当。当十六进制数的第一个字符是字母时,在第一个字符之前必十六进制数的第一个字符是字母时,在第一个字符之前必须添加一个须添加一个0 0。例如,。例如,100H100H、56EFH56EFH、0FFH0FFH、
8、0ABCDH0ABCDH等都是等都是十六进制数。加十六进制数。加0 0是为了和寄存器相区别,例如,是为了和寄存器相区别,例如,AHAH可以理可以理解为寄存器,只有前面加解为寄存器,只有前面加0 0为为0AH0AH才合适理解为才合适理解为1616进制数。进制数。3.3.数制的转换数制的转换(1 1)将十进制数转换成二进制数)将十进制数转换成二进制数 整数的转换采用整数的转换采用“除除2 2取余取余”法。把要转换的十进制法。把要转换的十进制数的整数部分不断除以数的整数部分不断除以2 2并在右边记下余数,然后以此类并在右边记下余数,然后以此类推,直到最后的商为推,直到最后的商为0,0,最后我们将余数
9、倒着排列即得结最后我们将余数倒着排列即得结果。果。 小数的转换采用小数的转换采用“乘乘2 2取整取整”法。小数的转换正好与法。小数的转换正好与整数的转换相反,将小数部分不断的乘以整数的转换相反,将小数部分不断的乘以2 2在右边记下成在右边记下成绩整数部分,依此类推,直到最后小数部分为绩整数部分,依此类推,直到最后小数部分为0 0或结果已或结果已达到精度要求为止。先取出来的整数作高位,后取出的整达到精度要求为止。先取出来的整数作高位,后取出的整数作低位,顺序排列即可。数作低位,顺序排列即可。例【例【2-12-1】将】将205205转换成二进制整数,如图转换成二进制整数,如图2-12-1所示。所示
10、。图图2-1 2052-1 205转换成二进制整数转换成二进制整数 例如,将十进制数例如,将十进制数 125.6875D125.6875D转换成二进制数。转换成二进制数。 125.6875D=1111101.1011B 125.6875D=1111101.1011B(2 2) 将十进制数转换成八将十进制数转换成八/ /十六进制数十六进制数方法如上方法如上, ,只不过乘只不过乘/ /除数为除数为8 8或或1616而已。而已。例如:例如:100D=64H 65535=0FFFFH 255=0FFH例【例【2-22-2】将】将347347转换成十六进制数,转换过程如图转换成十六进制数,转换过程如图2
11、-22-2所示。所示。图图2-2 3472-2 347转换成十六进制数转换成十六进制数(3 3) 二二/ /八八/ /十六进制数转换成十进制数十六进制数转换成十进制数 转换方法是采用位置记数法把他们写成相应的幂转换方法是采用位置记数法把他们写成相应的幂运算形式,然后求和即可得到结果。运算形式,然后求和即可得到结果。 例如:例如: 572.34Q=5572.34Q=5* *82+782+7* *8+2+38+2+3* *8-1+48-1+4* *8-2=378.4375D8-2=378.4375D(4 4)二进制数与八进制数的转换)二进制数与八进制数的转换 因为因为2 23 3=8=8,所以二进
12、制数转换成八进制数只需将二,所以二进制数转换成八进制数只需将二进制数从小数点开始每进制数从小数点开始每3 3位转成一位八进制数,整数部分位转成一位八进制数,整数部分由最低位开始划分,小数部分从最高位开始划分。例如:由最低位开始划分,小数部分从最高位开始划分。例如: 101111010 .011100B =572.34Q 八进制数转换成二进制数只需将每一位八进制数用八进制数转换成二进制数只需将每一位八进制数用三位二进制数表示,小数点位置不变。例如:三位二进制数表示,小数点位置不变。例如:175.54Q=001 111 101.101 100B=1111101.1011B(5 5) 二进制数与十六
13、进制数的转换二进制数与十六进制数的转换 至于十六进制数与二进制数的转换和八进制类似至于十六进制数与二进制数的转换和八进制类似只需将每只需将每3 3位一组改为每位一组改为每4 4位一组即可。例如:位一组即可。例如:101111010 .011111B =17A.7CH2022-6-12152.2 2.2 数值型数据的表示方法数值型数据的表示方法 一个数值型的数据既有大小,又可能有正负;即可能一个数值型的数据既有大小,又可能有正负;即可能是整数,又可能是小数。而在计算机中,数的所有信息都是整数,又可能是小数。而在计算机中,数的所有信息都要通过二进制编码的形式表示出来。要通过二进制编码的形式表示出来
14、。 数据是计算机处理的对象,数据表示是计算机运算的数据是计算机处理的对象,数据表示是计算机运算的基础。在选择数据的表示方式时,需要考虑以下几个因素:基础。在选择数据的表示方式时,需要考虑以下几个因素: (1 1)要表示的数的类型(小数、整数、实数和复数);)要表示的数的类型(小数、整数、实数和复数); (2 2)可能遇到的数值范围;)可能遇到的数值范围;(3 3)数值精确度;)数值精确度;(4 4)数据存储和处理所需要的硬件代价。)数据存储和处理所需要的硬件代价。1.1.机器数的概念及其特点机器数的概念及其特点 机器数是指一个数值数据在计算机中的二进制表示机器数是指一个数值数据在计算机中的二进
15、制表示形式,即一个数值数据的机内编码。如前所述,一个数形式,即一个数值数据的机内编码。如前所述,一个数值型数据的所有信息都要以二进制编码的形式表示出来,值型数据的所有信息都要以二进制编码的形式表示出来,因此,机器数有以下的特点:因此,机器数有以下的特点:(1 1) 符号位数码化符号位数码化 数的符号位在计算机中也要以二进制编码的形式表示数的符号位在计算机中也要以二进制编码的形式表示出来。通常用的方法是用一位二进制的出来。通常用的方法是用一位二进制的“0”0”来代表来代表“+”+”,用用“1”1”来代表来代表“”。通常这个符号放在二进制数最高。通常这个符号放在二进制数最高位,称为符号位。这样机器
16、中数的符号就被数值化了,符位,称为符号位。这样机器中数的符号就被数值化了,符号数值化是机器数的一个特点。号数值化是机器数的一个特点。(2 2) 小数点位置确定小数点位置确定 小数点在一个机器中的位置通常是事先约定隐含在一个小数点在一个机器中的位置通常是事先约定隐含在一个固定位置上,而不再占据机器数中的数位。约定的具体方法固定位置上,而不再占据机器数中的数位。约定的具体方法在后面会有介绍。小数点位置用一定方式约定,这是机器数在后面会有介绍。小数点位置用一定方式约定,这是机器数的又一个特点。的又一个特点。(3 3) 每个机器数对应唯一的真值每个机器数对应唯一的真值 机器数所代表的实际值叫真值。由于
17、机器数的编码中包机器数所代表的实际值叫真值。由于机器数的编码中包含有除数值大小之外的信息,因此,一个机器数形式上的值含有除数值大小之外的信息,因此,一个机器数形式上的值就不等于其实际的数值大小。但某种编码规则下一个机器数就不等于其实际的数值大小。但某种编码规则下一个机器数应该代表一个唯一的实际值。应该代表一个唯一的实际值。(4 4) 机器数表示数的范围和精度受机器字长的限制机器数表示数的范围和精度受机器字长的限制 在计算机中作为整体进行传输和参与运算的一个二进在计算机中作为整体进行传输和参与运算的一个二进制串称为字。每个字中包含的二进制位数称为字长,即字制串称为字。每个字中包含的二进制位数称为
18、字长,即字长是长是CPUCPU一次能够并行处理二进制数据位数。一般来说,一次能够并行处理二进制数据位数。一般来说,字长越长,机器数所能表示的二进制数的范围就越大,表字长越长,机器数所能表示的二进制数的范围就越大,表示数的精度就越高。示数的精度就越高。2.2.数值型数据的表示形式数值型数据的表示形式 数值型数据多带有小数,小数点在计算机中通常有两种数值型数据多带有小数,小数点在计算机中通常有两种形式:一种是约定所有数值数据的小数点隐含在某个固定位形式:一种是约定所有数值数据的小数点隐含在某个固定位置上,称为定点表示法;另一种小数点的位置可以浮动,称置上,称为定点表示法;另一种小数点的位置可以浮动
19、,称为浮点表示法。为浮点表示法。 计算机常用的数据表示格式有两种:定点格式和浮点格计算机常用的数据表示格式有两种:定点格式和浮点格式。一般来说,定点格式容许的数值范围有限,但要求的处式。一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围很大,但所要理硬件比较简单。而浮点格式容许的数值范围很大,但所要求的处理硬件比较复杂。求的处理硬件比较复杂。(1 1) 定点数表示法定点数表示法(fixed-point)(fixed-point) 所谓定点格式,即约定机器中所有数据的小数点位置是所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两
20、种简单的约定:将小数固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。后。一般常称前者为定点小数,后者为定点整数。l定点小数定点小数是纯小数,约定的小数点位置在符号位之后、是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据有效数值部分最高位之前。若数据 x x 的形式为的形式为 x = x = x0.x1x2xn ( x0.x1x2xn ( 其中其中x0 x0为为符号位符号位,x1x1xnxn是数值的有效是数值的有效部分,也称
21、为部分,也称为尾数尾数, x1x1为最高有效位为最高有效位 ) ),则在计算机,则在计算机中的表示形式为:中的表示形式为: 一般说来,如果最末位一般说来,如果最末位 x xn n = 1= 1,前面各位都为,前面各位都为 0 0 ,则数的绝对值最小,即则数的绝对值最小,即 |x|x|minmin = 2 = 2-n -n 。如果各位均为。如果各位均为 1 1,则数的绝对值最大,即则数的绝对值最大,即 |x|x|maxmax =1-2 =1-2-n-n 。所以定点小数的。所以定点小数的表示范围是:表示范围是: 2 2- n- n | x | 1 - 2 | x | 1 - 2- n- nl定点整
22、数定点整数是纯整数,约定的小数点位置在有效数值部分最是纯整数,约定的小数点位置在有效数值部分最低位之后。若数据低位之后。若数据 x x 的形式为的形式为 x = xx = x0 0 x x1 1x x2 2xxn n ( ( 其中其中x x0 0为符号位,为符号位,x x1 1x xn n 是尾数,是尾数, x xn n 为最低有效位为最低有效位 ) ),则在计,则在计算机中的表示形式为:算机中的表示形式为:定点整数的表示范围是:定点整数的表示范围是:1 | x | 2n -1 当数据小于定点数能表示的最小值时,计算机将它们作当数据小于定点数能表示的最小值时,计算机将它们作0 0处理,称为处理
23、,称为下溢下溢;大于定点数能表示的最大值时,计算机;大于定点数能表示的最大值时,计算机将无法表示,称为将无法表示,称为上溢上溢,上溢和下溢统称为,上溢和下溢统称为溢出溢出。 计算机采用定点数表示时,对于既有整数又有小数的原计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因子,数据按其缩小成定点小数始数据,需要设定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运算,运算结果,根据比例因子,或扩大成定点整数再参加运算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当,往往会使运算结果还原成实际数值。若比例因子选择不当,往往会使运算结果产生溢出或降低数据
24、的有效精度。产生溢出或降低数据的有效精度。 用定点数进行运算处理的计算机被称为用定点数进行运算处理的计算机被称为定点机定点机。(2) (2) 浮点数表示法浮点数表示法(floating-point number)(floating-point number) 与科学计数法相似,任意一个与科学计数法相似,任意一个J J进制数进制数N N,总可以写成,总可以写成N = J E M 式中式中M M称为数称为数 N N 的的尾数尾数(mantissa)(mantissa),是一个纯小数;,是一个纯小数;E E 为为数数 N N 的的阶码阶码(exponent)(exponent),是一个整数,是一个整
25、数,J J称为比例因子称为比例因子 J JE E 的的底数底数。这种表示方法相当于数的小数点位置随比例因子的不同。这种表示方法相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。而在一定范围内可以自由浮动,所以称为浮点表示法。 底数是事先约定好的底数是事先约定好的( (常取常取2)2),在计算机中不出现。在机,在计算机中不出现。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出阶
26、码,用整数形式表示,阶码指明小数点在精度。二是要给出阶码,用整数形式表示,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:成: 其中其中 E ES S 表示阶码的符号,占一位,表示阶码的符号,占一位,E E1 1E En n 为阶码值,占为阶码值,占 n n 位,尾符是数位,尾符是数 N N 的符号,也要占一位。当底数取的符号,也要占一位。当底数取 2 2 时,时,二进制数二进制数 N N 的小数点每右移一位
27、,阶码减小的小数点每右移一位,阶码减小 1 1,相应尾数右,相应尾数右移一位;反之,小数点每左移一位,阶码加移一位;反之,小数点每左移一位,阶码加 1 1,相应尾数左,相应尾数左移一位。移一位。 若不对浮点数的表示作出明确规定,同一个浮点数的表示若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的。例如就不是唯一的。例如 11.01 11.01 也可以表示成也可以表示成 0.011010.011012 2-3-3 ,0.11010.11012 2-2-2 等等。为了提高数据的表示精度,当尾数的值不等等。为了提高数据的表示精度,当尾数的值不为为 0 0 时,其绝对值应大于等于时,其绝对
28、值应大于等于 0.50.5,即尾数域的最高有效位,即尾数域的最高有效位应为应为 1 1,否则要以修改阶码同时左右移小数点的方法,使其变,否则要以修改阶码同时左右移小数点的方法,使其变成这一要求的表示形式,这称为成这一要求的表示形式,这称为浮点数的规格化浮点数的规格化表示。表示。 当一个浮点数的尾数为当一个浮点数的尾数为 0 0 时,不论其阶码为何值,或者时,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成何值,计算机都把该浮点数看成 0 0 值,称为值,称为机器零机器零。 浮点数所表示的范
29、围比定点数大。假设机器中的数由浮点数所表示的范围比定点数大。假设机器中的数由 8 8 位二进制数表示位二进制数表示( (包括符号位包括符号位) ):在定点机中这:在定点机中这 8 8 位全部用位全部用来表示有效数字来表示有效数字( (包括符号包括符号) );在浮点机中若阶符、阶码占;在浮点机中若阶符、阶码占 3 3 位,尾符、尾数占位,尾符、尾数占 5 5 位,在此情况下,若只考虑正数值,位,在此情况下,若只考虑正数值,定点机小数表示的数的范围是定点机小数表示的数的范围是 0.0000000 0.0000000 到到 0.11111110.1111111,相当于十进制数的相当于十进制数的 0
30、0 到到 127127128128,而浮点机所能表示的数,而浮点机所能表示的数的范围则是的范围则是 2 2 - - 11110.0001 0.0001 到到 2 211110.11110.1111,相当于十进,相当于十进制数的制数的 1 1128 128 。显然,都用。显然,都用 8 8 位,浮点机能表示的数的位,浮点机能表示的数的范围比定点机大得多。范围比定点机大得多。 尽管浮点表示能扩大数据的表示范围,但浮点机在运算尽管浮点表示能扩大数据的表示范围,但浮点机在运算过程中,仍会出现溢出现象。下面以阶码占过程中,仍会出现溢出现象。下面以阶码占 3 3 位,尾数占位,尾数占 5 5 位位( (各
31、包括各包括 1 1 位符号位位符号位) )为例,来讨论这个问题。图为例,来讨论这个问题。图 2-3 2-3 给给出了相应的规格化浮点数的数值表示范围。出了相应的规格化浮点数的数值表示范围。 图图2-3 2-3 规格化浮点数分布示意图规格化浮点数分布示意图 图中,图中,“可表示的负数区域可表示的负数区域”和和“可表示的正数区域可表示的正数区域”及及“0”0”,是机器可表示的数据区域;上溢区是数据绝对值太大,是机器可表示的数据区域;上溢区是数据绝对值太大,机器无法表示的区域;下溢区是数据绝对值太小,机器无法表示机器无法表示的区域;下溢区是数据绝对值太小,机器无法表示的区域。若运算结果落在上溢区,就
32、产生了溢出错误,使得结果的区域。若运算结果落在上溢区,就产生了溢出错误,使得结果不能被正确表示,要停止机器运行,进行溢出处理。若运算结果不能被正确表示,要停止机器运行,进行溢出处理。若运算结果落在下溢区,也不能正确表示之,机器当落在下溢区,也不能正确表示之,机器当 0 0 处理,称为机器零。处理,称为机器零。 一般来说,增加尾数的位数,将增加可表示区一般来说,增加尾数的位数,将增加可表示区域数据点的密度,从而提高了数据的精度;增加阶域数据点的密度,从而提高了数据的精度;增加阶码的位数,能增大可表示的数据区域。码的位数,能增大可表示的数据区域。3.3.原码、反码和补码原码、反码和补码 有符号数在
33、计算机中的表示有原码表示法,反码表示法,有符号数在计算机中的表示有原码表示法,反码表示法,补码表示法,它们表示的范围和计算机的字长有关。补码表示法,它们表示的范围和计算机的字长有关。 原码、原码、反码和补码用于将二进制有符号数的正、负号也用二进制编码反码和补码用于将二进制有符号数的正、负号也用二进制编码来表示,它们所代表的实际数值称为来表示,它们所代表的实际数值称为“真值真值”。 原码原码是直接在真值的绝对值之前增加一个符号位,并取是直接在真值的绝对值之前增加一个符号位,并取正数的符号为正数的符号为0 0,负数的符号为,负数的符号为1 1。正数的反码、补码与原码。正数的反码、补码与原码相同,负
34、数的反码为原码的符号位不变其他位变反而得,负相同,负数的反码为原码的符号位不变其他位变反而得,负数的补码为原码的符号位不变其他位变反十数的补码为原码的符号位不变其他位变反十l l而得。而得。例【例【2-32-3】(】(8 8位二进制数的原、反和补码)位二进制数的原、反和补码) -107= -6BH= -1101011B11101011B(原)(原)=10010100 B(反)(反) 1001010lB(补)(补) =EB H(原)(原)=94 H(反)(反)= 95 H(补)(补)107=6B H原)原)=6B H(反)(反)=6B H(补)(补)4.4.二进制数据的表示范围二进制数据的表示范
35、围 二进制数据的表示范围要分有符号数还是无符号数。二进制数据的表示范围要分有符号数还是无符号数。无符号数的所有二进制位(无符号数的所有二进制位(bitbit)均作为数值位;有符号数)均作为数值位;有符号数的最高位代表符号位,的最高位代表符号位,l l代表负、代表负、0 0代表正,其余位才是数代表正,其余位才是数值位。值位。 n n位二进制无符号数的表示范围为位二进制无符号数的表示范围为 0 0(2(2n n -1 ) -1 )。n n位二进制有符号数的表示范围还要再看其用的是什么编码位二进制有符号数的表示范围还要再看其用的是什么编码方案,补码为方案,补码为- 2n-1 (+2n-1-1 ) 。
36、计算机中内外存容量以字。计算机中内外存容量以字节(节(B B,ByteByte)为单位,一个字节由)为单位,一个字节由8 8个二进制位构成(即个二进制位构成(即1B=8 b1B=8 b)。)。8 8位二进制数(位二进制数(1 1字节)的无符号数表示范围为字节)的无符号数表示范围为 0 0255255,有符号补码表示范围为,有符号补码表示范围为-128-128127127;1616位二进制位二进制(2 2字节)的无符号数表示范围为字节)的无符号数表示范围为 0 06553565535,有符号补码,有符号补码表示范围为表示范围为-32768-327683276732767。5.5.真值与补码(无符
37、号数)之间的直接转换真值与补码(无符号数)之间的直接转换 正数的真值与补码(无符号数)完全相同,负数的真值与正数的真值与补码(无符号数)完全相同,负数的真值与补码(无符号数)之间的直接转换方法如图补码(无符号数)之间的直接转换方法如图2-42-4所示(所示(0 0在用在用n n位二进制补码表示时也代表位二进制补码表示时也代表2 2n n) )。例【例【2-4】 8位二进制数:位二进制数: 20=14 H(补)(补)= 20(无)(无) - 5= 0-5FB H(补)(补)= 251(无)(无) -1200-1200-78 H88 H(补)(补)= 136(无)(无) F8 H(补)(补)=24
38、8(无)(无)= -(0-F8H)=-08 H=-(256248)=-8(有)有) 5C H(补)(补)92(无)(无)= 92(有)(有) 16位二进制数:位二进制数: 20= 0014 H(补)(补)20(无)(无) -50-5FFFBH(补)(补)65531(无)(无) -120= 0- 1200-78 H= FF88H(补)(补)65 416(无)(无) FFC6 H(补)(补)0000 H-(0000 HFFC6 H)65536-5865478(无)(无) =-(0-FFC6 H)= -3A H=- 58(有)(有)=-(6553665478)= - 58(有)(有) 048F H1
39、024128151165(无)(无)=1165(有)(有)2022-6-12352.3 2.3 数的运算数的运算1.1.二进制数的逻辑运算二进制数的逻辑运算 计算机除了能够进行基算术运算外,还可以进行逻辑运计算机除了能够进行基算术运算外,还可以进行逻辑运算。计算机中的逻辑运算,主要由算。计算机中的逻辑运算,主要由“逻辑非逻辑非”、“逻辑与逻辑与”、“逻辑或逻辑或”和和“逻辑异或逻辑异或”等等4 4种基本运算。种基本运算。(1 1) 逻辑非逻辑非 逻辑非也称逻辑非也称“求反求反”。对二进制数进行逻辑非运算,。对二进制数进行逻辑非运算,就是按位求它的反,常用变量上方加一横来表示。就是按位求它的反,
40、常用变量上方加一横来表示。(2 2) 逻辑与逻辑与 对两个二进制数进行逻辑与,就是按位求它们的对两个二进制数进行逻辑与,就是按位求它们的“乘乘”,所以逻辑与又称为逻辑乘,常用记号所以逻辑与又称为逻辑乘,常用记号“”表示。位二进制表示。位二进制数逻辑与的规则为:数逻辑与的规则为: 00=0,0=0,10=0,11=1。(3 3) 逻辑或逻辑或 对两个二进制数进行逻辑或,就是按位求它们的对两个二进制数进行逻辑或,就是按位求它们的“加加”,所以逻辑或又称为不带进位的逻辑加,常用记号所以逻辑或又称为不带进位的逻辑加,常用记号“”表示。表示。位二进制数逻辑或的规则为:位二进制数逻辑或的规则为: 00=0
41、00=0,01=101=1,10=110=1,11=111=1。 (4 4)逻辑异或)逻辑异或 对两个二进制数进行逻辑异或,就是按位求它们的模对两个二进制数进行逻辑异或,就是按位求它们的模2 2和,所以逻辑异或又称不带进的按位加,常用符号和,所以逻辑异或又称不带进的按位加,常用符号“”来表示。位二进制数的逻辑异或运算规则为:来表示。位二进制数的逻辑异或运算规则为: 00=000=0,01=101=1,10=110=1,11=011=0。2.2.算术运算算术运算(1 1)二进制加法)二进制加法 二进制加法的规则为:二进制加法的规则为: 0+0=00+0=00+1=1+0=10+1=1+0=11+
42、1=0 1+1=0 进位进位1 11+1+1=1 1+1+1=1 进位进位1 1二进制减法的运算规则为:二进制减法的运算规则为:0-0=00-0=01-1=01-1=01-0=11-0=10-1=1 0-1=1 有借位有借位(2 2)二进制减法)二进制减法(3 3)二进制乘法)二进制乘法二进制乘法的运算规则为:二进制乘法的运算规则为:0 00=0 0=0 1 10=00=00 01=0 1=0 1 11=11=1乘法的运算规则表明只有当两个乘法的运算规则表明只有当两个1 1相乘时,积才相乘时,积才为为1 1,否则积为,否则积为0 0。(4 4)二进制除法)二进制除法 除法是乘法的逆运算,与十进
43、制的类似,从被除数的最高除法是乘法的逆运算,与十进制的类似,从被除数的最高位位MSB(Most Significant Bit)MSB(Most Significant Bit)开始检查,并定出需要超过除开始检查,并定出需要超过除数的位数。找到这个位时上记数的位数。找到这个位时上记1 1,并把选定的被除数值减除数。,并把选定的被除数值减除数。然后把被除数的下一位下移到余数上。如果余数不能减去除数然后把被除数的下一位下移到余数上。如果余数不能减去除数(不够减)则商(不够减)则商0 0,把被除数的下一位移到余数上;若余数够,把被除数的下一位移到余数上;若余数够减则上减则上1 1,余数减去除数,把被
44、除数的下一位移到余数上,余数减去除数,把被除数的下一位移到余数上 这样继续下去,直到全部被除数的位都下移完为止。然后这样继续下去,直到全部被除数的位都下移完为止。然后把余数把余数/ /除数作为商的分数,表示在商中。除数作为商的分数,表示在商中。3.3.带符号二进制数的表示与运算带符号二进制数的表示与运算 我们用我们用0 0表示表示“”号,用号,用1 1表示表示“”号,并且符号号,并且符号放在最高有效位。一个放在最高有效位。一个8 8位的二进制表示一个带符号数,最位的二进制表示一个带符号数,最高有效位高有效位D7D7位为符号位。位为符号位。 如:如: 1 1表示为:表示为: 0 0 0 0 0
45、0 0 1 B0 0 0 0 0 0 0 1 B 127127表示为:表示为: 0 1 1 1 1 1 1 1 B 0 1 1 1 1 1 1 1 B 1 1表示为:表示为: 1 0 0 0 0 0 0 1 B 1 0 0 0 0 0 0 1 B 127127表示为:表示为: 1 1 1 1 1 1 1 1 B1 1 1 1 1 1 1 1 B 用此方法表示的带符号数,在进行运算时遇到了问题:用此方法表示的带符号数,在进行运算时遇到了问题:1 1加加1 1的运算是最明显的例子。的运算是最明显的例子。 (1) 0 0 0 0 0 0 0 1 (1) 1 0 0 0 0 0 0 1 0 1 0 0
46、 0 0 0 1 0 2原因:是符号位也参加运算,计算机并不知道那是符号。原因:是符号位也参加运算,计算机并不知道那是符号。解决方法:解决方法: 改变其表示方式。改变其表示方式。 4.4.补码运算补码运算如何解决:改变带符号数的表示方法如何解决:改变带符号数的表示方法n补码表示补码表示1 1位十进制:若以位十进制:若以1010为模为模3 3和和7 7互补互补 10107 73 3 ,10103 31313,若丢弃进位,则若丢弃进位,则10107 7和和10103 3所得结果相同;故减所得结果相同;故减7 7可以用加可以用加3 3来运算来运算8-7=1 8+3=11 8-7=1 8+3=11 (
47、一位数的补码运算)(一位数的补码运算)前提是必须丢弃进位,而计算机的结构正好满足这个前提是必须丢弃进位,而计算机的结构正好满足这个条件。条件。5.5.二进制补码表示法二进制补码表示法 考虑到计算机的数据位长度一定,因而可用补数的编考虑到计算机的数据位长度一定,因而可用补数的编码形式表示带符号数。在进行运算时,丢弃进位,就可得码形式表示带符号数。在进行运算时,丢弃进位,就可得到正确结果。到正确结果。 对一正的二进制数的每位求反再加对一正的二进制数的每位求反再加1 1,即可得在机器,即可得在机器中表示的该数的负数,称补码表示法。在这种编码方式中,中表示的该数的负数,称补码表示法。在这种编码方式中,
48、正数的补码就是该正数。以正数的补码就是该正数。以8 8位二进制为例,求一负数的位二进制为例,求一负数的补码。补码。例【例【2-52-5】 45H 0 1 0 0 0 1 0 1 45H 0 1 0 0 0 1 0 1 每位求反每位求反 1 0 1 1 1 0 1 01 0 1 1 1 0 1 0 加加1 1 1 1 45H 1 0 1 1 1 0 1 1 6. 6.带符号数的运算带符号数的运算 带符号数在计算机中用其补码表示后,其运算方法与带符号数在计算机中用其补码表示后,其运算方法与二进制运算相同,但也会出现其特有的问题。二进制运算相同,但也会出现其特有的问题。 u减法可用加上该数的补,丢弃
49、进位运算完成。减法可用加上该数的补,丢弃进位运算完成。 例【例【2-62-6】用补码运算方法完成(】用补码运算方法完成(+1+1)+ +(-1-1)的运算)的运算例【例【2-72-7】 完成(完成(-1FH-1FH)+(-4AH)+(-4AH)运算运算例【例【2-82-8】 完成(完成(+6EH+6EH)+(-7CH)+(-7CH)u带符号数在加、减运算时的溢出问题带符号数在加、减运算时的溢出问题 两数都为正数,这时加法的进位进入符号位,使符号两数都为正数,这时加法的进位进入符号位,使符号 位为位为1 1 。 同理,两数都为负数,这时加法的进位进入符号位,使同理,两数都为负数,这时加法的进位进
50、入符号位,使符号位为符号位为0 0 。 一个正数和一个负数或两个较小的正、负数相加,一般一个正数和一个负数或两个较小的正、负数相加,一般不会溢出。不会溢出。 要注意两个较小的负数问题,因负数用其补码表示,所要注意两个较小的负数问题,因负数用其补码表示,所以看似大的数实际较小。以看似大的数实际较小。u带符号数的符号扩展表示带符号数的符号扩展表示 在计算机系统中,由于在计算机系统中,由于CPUCPU的数据宽度有的数据宽度有8 8位、位、1616位、位、3232位、甚至位、甚至6464位之分,而存储器的数据总是以位之分,而存储器的数据总是以8 8位(字节)位(字节)宽度组织。在某些运算时需要将宽度组
51、织。在某些运算时需要将8 8位数据扩展成位数据扩展成1616位或位或者将者将1616位数位数 扩展成扩展成3232位等。位等。 对无符号数扩展,仅在其数据之前加上若干位对无符号数扩展,仅在其数据之前加上若干位0 0即可。即可。 而带符号数的扩展实际是扩展其符号,即正数前补而带符号数的扩展实际是扩展其符号,即正数前补8 8个个(或(或1616个)个)0 0,负数前补,负数前补8 8个(或个(或1616个)个)1 1。如如 :5 5的的1616位表示位表示 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 10 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 5 5的的161
52、6位表示位表示 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 11 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 3EH3EH的的1616位表示位表示0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 3EH3EH的的1616位表示位表示1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 01 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0u实型数的表示实型数的表示 一般一般8 8位和位和1616位的微处理机都是基于定点运算,不具备位的微处理机都是基于定点运算,不具备通用计
53、算机那样复杂的数值运算指令,浮点和长整数的运算通用计算机那样复杂的数值运算指令,浮点和长整数的运算要用软件处理,因而速度慢。要用软件处理,因而速度慢。8038680386、8048680486等等CPUCPU中配置了中配置了专门用于处理浮点运算的部件。浮点部件所处理的实型数专门用于处理浮点运算的部件。浮点部件所处理的实型数(又称浮点数)形式是:(又称浮点数)形式是: (-1)S2E(b0b1b2.bp-1)(-1)S2E(b0b1b2.bp-1)。 其中其中S S是符号位,是符号位,0 0为正,为正,1 1为负;为负;E E为指数(称阶码),为指数(称阶码),是一个二进制整数;是一个二进制整数
54、;bibi为二进制有效数字位(称尾数),为二进制有效数字位(称尾数),p p为精度位数。为精度位数。二进制位二进制位数数阶码位数阶码位数 阶码偏置阶码偏置 尾数位数尾数位数 单精度单精度 32 32 8 8 127 127(7FH7FH) 23 23 双精度双精度 64 64 11 11 1023 1023(3FFH3FFH) 52 52 扩展精度扩展精度 80 80 15 15 64 642022-6-12522.4 2.4 码制及转换码制及转换1.1.十进制数字的编码(十进制数字的编码(BCDBCD码)码) 在计算机内部常用的数字编码是在计算机内部常用的数字编码是BCD(BCD(二十进制二
55、十进制) )码。这码。这种编码将每位十进制数字编成种编码将每位十进制数字编成4 4位二进制代码,从而用二进制位二进制代码,从而用二进制数来表示十进制数,常见的数来表示十进制数,常见的BCDBCD码有码有84218421码、码、24212421码以及余码以及余3 3码码等。但最常用的等。但最常用的BCDBCD码是标准码是标准BCDBCD码或称码或称84218421码。码。 BCD BCD码又分为压缩码又分为压缩BCDBCD码和非压缩码和非压缩BCDBCD码。压缩码。压缩BCDBCD码是用码是用4 4位二进制数表示一位十进制数,一个字节可以表示一位十进位二进制数表示一位十进制数,一个字节可以表示一
56、位十进制(制(00990099);非压缩);非压缩BCDBCD是用是用8 8位二进制代码表示一位十进制位二进制代码表示一位十进制数,高数,高4 4位无效,一个字节只能表示一位十进制数(位无效,一个字节只能表示一位十进制数(0909),),高高4 4位为位为0 0时则叫标准非压缩时则叫标准非压缩BCDBCD码。码。 例如十进制例如十进制5858的压缩的压缩BCDBCD码为码为58H58H,其标准非压缩,其标准非压缩BCDBCD码为码为0508H0508H。 表表2-22-2列出了标准列出了标准BCDBCD码与十进制数字的编码关系。码与十进制数字的编码关系。十进制基数为十进制基数为1010,它有,
57、它有1010个不同的数码。因此为了能表个不同的数码。因此为了能表示十进制数的某一位,必须选择至少示十进制数的某一位,必须选择至少4 4位二进制数。位二进制数。 注意:为了避免格式与纯二进制码混淆,常在每注意:为了避免格式与纯二进制码混淆,常在每4 4位二进制位二进制数之间留一空格。数之间留一空格。这种表示也适合十进制小数。如十进制小数这种表示也适合十进制小数。如十进制小数0.4560.456可以表示成:可以表示成:0.0100 0101 01100.0100 0101 0110。2.2.字符及字符串的表示方法(字符及字符串的表示方法(ASCII ASCII 码)码) 现代计算机中不仅进行数值计
58、算,而且要处理大量非数现代计算机中不仅进行数值计算,而且要处理大量非数值的问题。特别是处理办公领域的文本信息。字符是计算机值的问题。特别是处理办公领域的文本信息。字符是计算机中使用最多的信息形式之一,是人与计算机交互、通信的工中使用最多的信息形式之一,是人与计算机交互、通信的工具。在计算机中,要为每个字符指定一个确定的编码,作为具。在计算机中,要为每个字符指定一个确定的编码,作为输入、存储、处理和输出有关字符的依据。字符编码也是利输入、存储、处理和输出有关字符的依据。字符编码也是利用二进制数的符号用二进制数的符号“0”0”和和“1”1”进行的。进行的。 目前国际上广泛采用的字符系统是用目前国际
59、上广泛采用的字符系统是用7 7位二进制信息表位二进制信息表示的美国国家信息交换标准代码示的美国国家信息交换标准代码(American Standard Code (American Standard Code for Information Interchange)for Information Interchange),简称,简称 ASCII ASCII 码码。 它包括它包括1010个十进制数字,个十进制数字,2626个英文字母和一些专用符号,个英文字母和一些专用符号,总共总共128128个元素,因此二进制编码需要个元素,因此二进制编码需要7 7位,加上一个偶校验位,加上一个偶校验位,共位,
60、共8 8位,刚好为一个字节。位,刚好为一个字节。ASCII ASCII 码和码和128128个字符的对应个字符的对应关系如表关系如表2-32-3所示。所示。 ASCII ASCII 码是码是128128个字符组成的字符集。个字符组成的字符集。ASCII ASCII 码规定每个码规定每个字符用字符用7 7位二进制数表示,表中横坐标是第位二进制数表示,表中横坐标是第6 6、5 5、4 4位,纵坐标位,纵坐标是第是第3 3、2 2、1 1、0 0位。位。 字符串是指连续的一串字符,在主存中通常占用连续的多字符串是指连续的一串字符,在主存中通常占用连续的多个字节,每个字节存放一个字符。当主存单元中一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五金批发行业互联网发展趋势解读与应用实践案例分析考核试卷
- 羽绒服材料创新与可持续发展趋势考核试卷
- 职业中介服务的远程面试与在线评估考核试卷
- 2025委托创作合同的范本范文
- 二零二五版出租车司机聘请合同书
- 大学生职业规划大赛《应用化学专业》生涯发展展示P
- 大学生职业规划大赛《环境科学专业》生涯发展展示
- 医疗机构传染病防控责任清单(2024年版)
- 2025企业并购服务合同为什么要进行企业并购
- 2025商务会议租车合同模板
- 2025购销合同(电子产品)范文
- 基于全生命周期的绿色建筑成本影响因素研究
- 2025年普法知识竞赛题库及答案(共80题)
- 心力衰竭护理查房 课件
- 【课时练基础作业】人教版四年级数学下册第四单元《期中计算能力测试》(含答案)
- 树木修剪合同协议
- 2025年兰州市九年级诊断考试(一诊)物理试卷
- 2024年4月27日福建省事业单位《综合基础知识》真题及答案
- 农民工工资专用账户管理制度
- 部编版五年级道德与法治下册第三单元《百年追梦复兴中华》教材分析单元分析
- 初级培训机器人的机械系统
评论
0/150
提交评论