原码、反码、补码1、真值:把带有正、负号的数2、机器数:把符号数字化的数机器数和真值例:+35,-1001110B,-100101B例:10000111,11001001,01100011表示方法原码概念:真值用二进制表示后,数的数值部分不变,在符号位上用“0”和“1”分别表示数的符号“+”和“-”。表达方式:[X]原x+1001001[x]原01001001-110010011100100原码特点原码符号位后的代码为真值的绝对值+0的原码为00000000-0的原码为10000000原码的表示范围为+(2n-1-1)~-(2n-1-1)正数的反码:与原码相同负数的反码:符号位为“1”,数值位按位取反X的反码表示方式:[X]反反码x[x]反+1001001-11001000100100110011011[x]原除符号位取反反码特点x0,[x]原=[x]反x0,[x]反=[x]原除符号位以外取反x=+0,[x]反=00000000x=-0,[x]反=1111111反码的表示范围为+(2n-1-1)~-(2n-1-1)补码x[x]补+1001001-11001000100100110011100[x]反+1模+x目的:将加、减运算简化为单纯的相加运算,以便于在计算机中实现各种运算。表示方式:[X]补模=2n(n为字长)当真值小于0时才可以用模计算补码模例:已知X=-1100100,求[X]补[X]原=11100100[X]反=10011011[X]补=10011100X的字长为8位模=28[X]补=模+X=28+(-1100100)=100000000-1100100=10011100补码的特点练习P28-5定点加/减法运算(补码)加法[X]补+[Y]补=[X+Y]补减法[X-Y]补=[X]补+[-Y]补补码运算时,符号位参与运算运算时,符号位产生的进位要去掉减法运算转为补码的加法运算[-Y]补的求法:将[Y]补连同符号位在内的所有位一起取反,再加11212例题[X]补+[Y]补=[X+Y]补[X-Y]补=[X]补+[-Y]补已知[X]原=10010101,[Y]反=01001010,求[X+Y]补和[X-Y]补[X]反=11101010[X]补=11101011[X]原=10010101[Y]反=01001010[Y]补=01001010[X+Y]补=[X]补+[Y]补=11101011+01001010=[X]反=11101010[X]补=11101011[X]原=10010101[Y]反=01001010[Y]补=01001010[-Y]补=10110110[X-Y]补=[X]补+[-Y]补=11101011+10110110=练习已知X=-1101001B,Y=-1111011B,求[X+Y]补定点加/减法运算(补码)练习已知X=-1101001B,Y=-1111011B,求[X+Y]补例:已知X=-1101001B,Y=-1011011B,用补码求X+Y的值[X]补+[Y]补=[X+Y]补[X]原=11101001[X]反=10010110[X]补=10010111[Y]原=11011011[Y]反=10100100[Y]补=10100101[X]补+[Y]补=10010111+10100101110010111+1101001011100111100X+Y发生了溢出(下溢)Cs+1Cs=10,下溢Cs+1Cs=01,上溢Cs+1Cs=00或11,无溢出练习P49-2