计算机组织与结构 (15).pdf
反码表示法 反码经常用作求补码的过渡。定义如下:整数x反=0,x 2n x 0(2n+1-1)+x 0 x-2n (mod(2n+1-1))x 为真值。n 为整数的位数。如 x =+1101x=-1101x反=0,1101 x反=(24+1-1)-1101=1,0010=11111-1101用逗号将符号位和数值部分隔开反码表示法 小数x反=x 1 x 0(22-n)+x 0 x-1 (mod(2-2-n))x 为真值。n 为小数的位数。如 x =+0.1101 x=-0.1010 x反=0.1101x反=(2-2-4)-0.1010=1.0101=1.1111-0.1010用小数点将符号位和数值部分隔开例题1例:已知 x反=0,1110 求 x。解:由定义得 x=+1110例:已知 x反=1,1110 求 x。解:由定义得 x=x反-(24+1-1)=1,1110-11111 =-0001例题2例:求0的反码。解:设 x=+0.0000 +0.0000反=0.0000 x=-0.0000 -0.0000反=1.1111同理,对于整数 +0反=0,0000 -0反=1,1111 +0反 -0反 例题3 各种机器数的数值表示二进制代码 无符号数对应的真值原码对应 的真值补码对应 的真值反码对应 的真值000000000000000100000010011111111000000010000001111111011111111011111111012127+0+1+2+127+0+1+2+127+0+1+2+127128129-0-1-128-127-127-126253254255-125-126-127-3-2-1-2-1-0BCD码的用途 计算机的输入输出部分绝大多数情况使用十进制数据,而计算机内部使用二进制,因此涉及到数制转换。某些数据输入输出量很大的商用领域,为减少大量的数制转换,直接采用十进制进行计算。BCD(Binary Coded Decimal)码为采用二进制编码的十进制数,某些计算机内部有专门的十进制数运算指令,以及对应的逻辑线路。BCD码的分类 有权BCD码:每个十进制数位的4个二进制数位,都有一个确定的权。8421BCD码(自然BCD码)、2421BCD码、5211BCD码、84-2-1BCD码、4311BCD码 无权BCD码:每个十进制数位的4个二进制数位,没有确定的权。余3码、格雷码有权BCD码十进制数8421码2421码5211码84-2-1码4311码000000000000000000000100010001000101110001200100010001101100011300110011010101010100401000100011101001000501011011100010110111601101100101010101011701111101110010011100810001110111010001110910011111111111111111无权BCD码十进制数余3码格雷码(1)格雷码(2)00011000000001010000010100201010011011030110001000104011101101010510001110101161001101000117101010000001810111100100191100010010008421BCD码的运算 如果两个BCD码相加之和小于等于(9)10,则不需修正;如相加之和大于(9)10,则要进行加6修正,并向高位进位。例题1:例题2:1+8=9;4+9=13;9+7=16(28)10+(55)10=(83)10例题1例:1+8=9;例:4+9=13;例:9+7=160 0 0 11 0 0 01 0 0 1+不需要修正0 1 0 01 0 0 11 1 0 1+进位0 1 1 01 0 0 1 1+修正1 0 0 10 1 1 1+进位0 1 1 01 0 1 1 0+修正1 0 0 0 0余三码及运算 余三码是在BCD码的基础上,每个编码都加0011而形成的。当两个余三码相加不产生进位时,应从结果中减去0011,;产生进位时,应将进位信号送入高位,本位加0011.例题2例:(28)10+(55)10=(83)100 1 0 1 1 0 1 11 0 0 0 1 0 0 01 1 1 0 0 0 1 10 0 1 1 0 0 1 11 0 1 1 0 1 1 0+)+)-)1(28)10(55)10低位向高位产生进位,高位不产生进位。低位+3,高位-3。(0011)2=(3)10