第2章计算机中数据信息的表示和运算2.1数值数据的表示2.2定点数运算方法2.3浮点数运算方法2.4算术逻辑单元ALU2.1数值数据的表示一、进位计数制二、数据格式三、定点机器数的表示方法四、浮点机器数的表示方法二、数据格式计算机中参与运算的数据有两种:无符号数据(Unsigned):所有的二进制数据位数均用来表示数值本身,没有正负之分。带符号数据(Signed):则其二进制数据位,包括符号位和数值位。计算机中的带符号数据又称为机器数。二、数据格式1、机器数与真值机器数:把“+”、“-”符号代码化,并保存在计算机中的数据。真值:是指机器数所真正表示的数值,用数值并冠以“+”、“-”符号的方法来表示。机器数的编码方法:原码、反码、补码、移码。二、数据格式2、小数点的表示方法在机器数中,小数点及其位置是隐含规定的;有两种隐含方式:定点数:小数点的位置是固定不变的浮点数:小数点的位置是浮动的定点机器数分为定点小数、定点整数两种。浮点机器数中小数点的位置由阶码规定,因此是浮动的。二、数据格式X0符号位数值位X1X2……Xn﹒小数点隐含位置(a)定点整数格式二、数据格式X0符号位数值位X1X2……Xn﹒小数点隐含位置(b)定点小数格式二、数据格式ESE1E2……Em阶码尾数MSM1M2……Mn(c)浮点数格式三、定点机器数的表示方法定点机器数的小数点的位置是固定不变的,可以分为两种:定点小数:用于表示纯小数,小数点隐含固定在最高数据位的左边,整数位则用于表示符号位。定点整数:用于表示纯整数,小数点位置隐含固定在最低位之后,最高位为符号位。1、原码表示法2、反码表示法3、补码表示法4、移码表示法1、原码表示法(1)表示方法:最高位表示数的符号,其他位表示数值位。符号位:0-正数,1-负数。数值位:与绝对值相同。1、原码表示法对于定点整数:若X=+X1X2……Xn,则[X]原=0,X1X2……Xn;若X=-X1X2……Xn,则[X]原=1,X1X2……Xn。对于定点小数:若X=+0.X1X2……Xn,则[X]原=0.X1X2……Xn;若X=-0.X1X2……Xn,则[X]原=1.X1X2……Xn。“,”和“.”只用于助记,在计算机中并无专用部件来表示1、原码表示法例1:X=1011,Y=-1011,则:[X]原=;[Y]原=;例2:X=0.1101,Y=-0.1101,则:[X]原=;[Y]原=;例3:X=1011,Y=-0.1101,求X和Y的8位原码机器数。[X]原=;[Y]原=;例4:[0]原=?0,10111,10110.11011.11010,00010111.11010001、原码表示法(2)0的表示:0的原码表示有两种形式,即分别按照正数和负数表示。[+0]原=00…0[-0]原=10…0(3)表示范围:对于n+1位原码机器数X,它所能表示的数据范围为:定点整数:-(2n-1)≤X≤2n-1定点小数:-(1-2-n)≤X≤1-2-n包括1位符号位,n位数值位2、反码表示法(1)表示方法:最高位表示数的符号,其他位表示数值位。符号位:0-正数,1-负数。数值位:正数时,与绝对值相同;负数时,为绝对值取反。2、反码表示法对于定点整数:若X=+X1X2……Xn,则[X]反=0,X1X2……Xn;若X=-X1X2……Xn,则[X]反=1,X1X2……Xn。对于定点小数:若X=+0.X1X2……Xn,则[X]反=0.X1X2……Xn;若X=-0.X1X2……Xn,则[X]反=1.X1X2……Xn。2、反码表示法例1:X=1011,Y=-1011,则:[X]反=;[Y]反=;例2:X=0.1101,Y=-0.1101,则:[X]反=;[Y]反=;例3:X=1011,Y=-0.1101,求X和Y的8位反码机器数。[X]反=;[Y]反=;例4:[0]反=?0,10111,01000.11011.00100,00010111.00101112、反码表示法(2)0的表示:0的反码表示有两种形式,即分别按照正数和负数表示。[+0]反=00…0[-0]反=11…1(3)表示范围:对于n+1位反码机器数X,它所能表示的数据范围为:定点整数:-(2n-1)≤X≤2n-1定点小数:-(1-2-n)≤X≤1-2-n包括1位符号位,n位数值位3、补码表示法(1)表示方法:最高位为符号位,其他位为数值位。符号位:0-正数,1-负数。数值位:正数时,与绝对值相同;负数时,为绝对值取反后,末位加1。3、补码表示法对于定点整数:若X=+X1X2……Xn,则[X]补=0,X1X2……Xn;若X=-X1X2……Xn,则[X]补=1,X1X2……Xn+1。对于定点小数:若X=+0.X1X2……Xn,则[X]补=0.X1X2……Xn;若X=-0.X1X2……Xn,则[X]补=1.X1X2……Xn+0.00……1。3、补码表示法例1:X=1011,Y=-1011,则:[X]补=;[Y]补=;例2:X=0.1101,Y=-0.1101,则:[X]补=;[Y]补=;例3:X=1011,Y=-0.1101,求X和Y的8位补码机器数。[X]补=;[Y]补=;例4:[0]补=?0,10111,01010.11011.00110,00010111.00110003、补码表示法(2)0的表示:0的补码表示形式是唯一的,即分别按照正数和负数表示均一致,为全零。[+0]补=00…0[-0]补=00…0(3)表示范围:对于n+1位补码机器数X,它所能表示的数据范围为:定点整数:-2n≤X≤2n-1定点小数:-1≤X≤1-2-n计算机中的整型数据(int)均用补码来表示。包括1位符号位,n位数值位4、移码表示法(1)表示方法:最高位为符号位,其他位为数值位。符号位:1-正数,0-负数。数值位:正数时,与绝对值相同;负数时,为绝对值取反后,末位加1。4、移码表示法移码表示:即为补码的符号位取反对于定点整数:若X=+X1X2……Xn,则[X]移=1,X1X2……Xn;若X=-X1X2……Xn,则[X]移=0,X1X2……Xn+1。对于定点小数:若X=+0.X1X2……Xn,则[X]移=1.X1X2……Xn;若X=-0.X1X2……Xn,则[X]移=0.X1X2……Xn+0.00……1。4、移码表示法例1:X=1011,Y=-1011,则:[X]移=;[Y]移=;例2:X=0.1101,Y=-0.1101,则:[X]移=;[Y]移=;例3:X=1011,Y=-0.1101,求X和Y的8位移码机器数。[X]移=;[Y]移=;例4:[0]移=?1,10110,01011.11010.00111,00010110.00110004、移码表示法(2)0的表示:0的移码表示形式是唯一的,即分别按照正数和负数表示均一致。[+0]移=10…0[-0]移=10…0(3)表示范围:对于n+1位移码机器数X,它所能表示的数据范围为:定点整数:-2n-1≤X≤2n-1定点小数:-1≤X≤1-2-n移码通常作为浮点数的阶码。包括1位符号位,n位数值位真值X真值X十进制二进制[X]原[X]反[X]补十进制二进制[X]原[X]反[X]补+0+1+2+3+4+5+6+7+8+000+001+010+011+100+101+110+111-00000001001000110100010101100111--0-1-2-3-4-5-6-7-8-000-001-010-011-100-101-110-111-100010001001101010111100110111101111-11111110110111001011101010011000-000011111110110111001011101010011000真值与3种机器数间的对照练习若真值为纯整数,它的补码形式为XsX1X2…X15,其中Xs表示符号位(即将下列各数表示成16位二进制补码定点整数)1、3782、-2543、20454、16381如果已知机器的字长,则机器数的位数应补够相应的位。例如,设机器字长为8位,则:X1=1011X2=-1011[X1]原=00001011[X2]原=10001011[X1]补=00001011[X2]补=11110101[X1]反=00001011[X2]反=11110100X3=0.1011X4=-0.1011[X3]原=0.1011000[X4]原=1.1011000[X3]补=0.1011000[X4]补=1.0101000[X3]反=0.1011000[X4]反=1.0100111作业写出下列各数的原码、反码、补码(用8位二进制数,MSB是最高位,LSB是最低位,MSB为符号位。若将其看成整数,则小数点在LSB之后;若将其看成小数,则小数点在MSB之后。1、-35/642、23/1283、-1274、用小数表示-15、用整数表示-16、-0