1.3.1计算机中数的表示机器数机器数:将数的符号和数值以数的形式表示.原码反码补码通常:最高位为符号位,0代表正,1代表负.机器字长:表示机器数所用的二进制位数.真值:用+、-号表示符号位.特点:无符号位An-1An-2...A1A0表示范围:0∽2n-11.3.1无符号数的表示原码定义:正数时符号位为0,负数的符号位为1,数值部分不变.[-1101]原=11101[+1101]原=01101机器字长为5时[-0001101]原=10001101[+0001101]原=00001101机器字长为8时符号数的表示1.3.2原码所以原码的表示法:符号代码+数的绝对值整数[-An-1An-2...A0]原当x0时,[x]原=2n-1+|x|=2n-1_x1An-1An-2...A0当x0时,[x]原=x[+A-nAn-1...A0]原0An-1An-2...A0[0]原=?1.3.2原码--整数小数[-0.A-1A-2A-3...A-m]原1.A-1A-2A-3...A-m当x0时,[x]原=1+|x|=1-x[0.A-1A-2A-3...A-m]原0.A-1A-2A-3...A-m当x0时,[x]原=x[0]原=?1.3.2原码--小数1.3.2原码的运算规则:①判别两数码符号相同时则相加相异时则相减(用绝对值大的做被减数)②运算结果的符号与绝对值大的数相同③符号位不参加运算例:X=+0.1010Y=+0.0011求Z=X-Y解:已知:[X]原=0.1010[—Y]原=1.0011∵X绝对值大,故做被减数,而y做减数,并且差值为正0.1010-0.0011=0.0111[Z]原=0.0111即Z=+0.0111整数(11110011)原(10001100)反(01110011)原(01110011)反求反操作:01,10(11110011)原(10001100)反[1111111]减1.3.3反码--整数规则反码表示整数当-2n-1x0时,[x]反=2n-1-|x|=2n–1+x当0x2n-1时,[x]反=x[0]反=?对于X=Xn-1Xn-2...X1X0-1110011(10001100)反[11111111]加Xn-1Xn-2...X1X0Xn1.3.3反码--整数公式反码表示小数-0.1110011(1.0001100)反[0.1110011](0.1110011)反-0.1110011(1.0001100)反1.1111111加1.3.3反码--小数规则反码表示小数当-1x0时,[x]反=2-2-m-|x|=2-2-m+x当0x1.0时,[x]反=x[0.0]反=?-0.1110011(1.0001100)反1.1111111加对于X=0.X-1X-2...X-m1.3.3反码--小数公式例:x=+0.1011则[X]反=x=0.1011x=-0.1011则[X]反=(2-2-4)+x=2+x-2-4=2-0.1011-2-4=1.0101-2-4=1.01001.3.3反码〈1〉符号位与数值位一起参加运算运算规则〈2〉有进位时,要求适当处理(即进行循环加)1.3.3反码的运算例:已知[X]反=0.1010[—Y]反=1.1100求:Z=X—Y=X+(—Y)解:[Z]反=[X]反+[-Y]反=0.1010+1.1100=0.01110.1010+1.110010.011010.0111n位二进制(连同符号位)补码表示(以8位为例)[-1111001]补=100000000+(-1111001)=1+11111111-1111001求反当X0时,先求反码,再尾数加1.[X]补=[X]反+1(整数)[+1111001]补=01111001.当X0时,[X]补=X1.3.4补码整数n位二进制(连同符号位)补码表示(以8位为例)[-0.1111001]补=2+(-0.1111001)=1.0000111当X0时,先求反码,再末位加1.[X]补=[X]反+2-7[+0.1111001]补=0.1111001当X0时,[X]补=X1.3.4补码小数1.3.4补码举例例:x=-0.1101[x]补=1.0010+2-4=1.0011x=-11011[x]补=100100+1=100101这里虽然0有正负0之分,但其补码都是一样的如[+0]补=0.0000[-0]补=1.1111+0.0001=0.0000[X]补=X,当0X2n-12n+X,当-2n-1X0X为整数时[X]补=X,当0X12+X,当-1X00X为小数时[+0]补=?[-0]补=?n为表示数的二进制位数对于X=Xn-1Xn-2...X1X01.3.4补码公式An-1An-2...A1A0最小负数:1000...000-2n-1最大正数:0111...1112n-1-1表示数1.3.4N位补码的表示范围符号扩展:表示数的位数增加时,对符号应作的处理:只对补码101111111011扩成8位符号扩展001100000011扩成8位符号扩展1.3.4数的符号位扩展求补运算:连同符号位按位求反,末位加1.[X]补[-X]补[X]补求补求补求补运算有以下性质:1.3.4补码运算[X+Y]补=[X]补+[Y]补补码的加法规则:[X-Y]补=[X]补+[-Y]补补码的减法规则:1.3.4补码加法和减法规则1.3.4补码运算〈1〉符号位与数值位一起参加运算运算规则〈2〉有进位时,不用处理(即舍弃进位)例:已知[X]补=0.1010[-Y]补=1.1101,求Z=X-Y解:[Z]补=[X]补+[-Y]补=0.1010+1.1101=0.01110.1010Z=+0.0111+1.1101=10.0111例1:求64–10,用补码做x=64–10=64+(-10)[+64]补=01000000,[-10]原=10001010[-10]补=11110110[x]补=[+64]补+[-10]补=01000000+11110110=00110110x=+54例2:求34–68x=34–68=34+(-68)[+34]补=00100010,[-68]原=11000100[-68]补=10111100[x]补=[+34]补+[-68]补=00100010+10111100=11011110[x]原=10100010,x=-341.3.4补码的加减运算1.3.6十进制的原码、反码、补码•符号位:0(+),9(-)•对9的补数=对10的反码例:十进制N1=5489,N2=3250求N=N1–N2例例:十进制N1=5489,N2=3250求N=N1–N2(N1)10反=05489(N1)10补=05489(-N2)10反=96749(-N2)10补=96750-------------------------------------------------1022381022391-------------------------------------------------0223902239