1、1l计算机中的带符号二进制数计算机中的带符号二进制数l把二进制数的把二进制数的最高位最高位定义为符号位定义为符号位l符号位为符号位为 0 表示表示正数正数,符号位为,符号位为 1 表示表示负数负数l连同符号位一起数值化了的数,称为连同符号位一起数值化了的数,称为机器数机器数。l机器数所表示的真实的数值,称为机器数所表示的真实的数值,称为真值真值。(在以下讲述中,均以位二进制数为例)2例例:+52=+0110100=0 0110100 符号位符号位数值位数值位 -52=-0110100=1 0110100 真值真值机器数机器数31.符号数的表示符号数的表示l对于符号数,机器数常用的表示对于符号数
2、,机器数常用的表示方法有方法有原码原码、反码反码和和补码补码三种。三种。数数X的原码记作的原码记作 X 原原,反码记作,反码记作 X 反反,补码记作,补码记作 X 补补。注意:对正数,三种表示法均相同。注意:对正数,三种表示法均相同。它们的差别在于对负数的表示。它们的差别在于对负数的表示。4原码原码X原l定义定义符号位:符号位:0表示正,表示正,1表示负;表示负;数值位:真值的绝对值。数值位:真值的绝对值。nnnXXXXX 11122200-5原码的例子原码的例子真值X=+18=+0010010X=-18=-0010010原码X原=0 0010010X原=1 0010010符号符号位n位原码表
3、示数值的范围是位原码表示数值的范围是对应的原码是对应的原码是1111 0111。()()nn1121216数数0的原码的原码l8位数位数0的原码:的原码:+0=0 0000000 -0=1 0000000 即:数即:数0的原码不唯一。的原码不唯一。7反码反码X反定义定义l 若若X0,则则 X反反=X原原l 若若X0,则则X补补=X反反=X原原l若若X0,则则X补补=X反反+1-nnnXXXXX 11222 00-12例例:lX=52=0110100 X原原=10110100 X反反=11001011 X补补=X反反+1=11001100n位补码表示数值的范围是位补码表示数值的范围是对应的补码是
4、对应的补码是1000 0111。()11221nn130的补码:的补码:l+0补补=+0原原=00000000l-0补补=-0反反+1=11111111+1 =1 00000000 对对8 8位字长,进位被舍掉位字长,进位被舍掉l+0补补=-0补补=0000000014特殊数特殊数10000000l该数在原码中定义为:该数在原码中定义为:-0l在反码中定义为:在反码中定义为:-127l在补码中定义为:在补码中定义为:-128l对无符号数:对无符号数:(10000000)=128158位有符号数的表示范围:位有符号数的表示范围:l对对8位二进制数:位二进制数:l原码:-127 +127l反码:-127 +127l补码:-128 +127l想一想:想一想:16位有符号数的表示范围是多少?位有符号数的表示范围是多少?16ASCII码美国标准信息交换代码美国标准信息交换代码