您的位置:首页 > 其它

【软考路上】——原码、反码、补码、移码

2015-04-25 08:42 459 查看
各种数值在计算机中的表示形式称为机器数,机器数采用二进制数来表示数据,数据的正负号也分别用0和1来表示。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等编码方法。

注:以下规则均以机器字长为8(即采用8个二进制位来表示数据)来举例说明。

原码

⊙正数:如下图①先写上要表示的数据,②符号位(首位)写上0,③如果有空位则用0补上,如X=22=10110B,则[X]原=00010110;




⊙负数:如下图①先写上要表示的数据,②首位写上1,③如果有空位则用0补上,如X=-27=-11011B,则[X]原=10011011。




反码

⊙正数:反码等于原码,如X=10110,则[X]反=[X]原=00010110;

⊙负数:如下图,在原码的基础上,④符号位(首位)不变,⑤其他位按位取反(0变成1,1变成0),如X=-11011,则[X]原=10011011,[X]反=11100100。




补码

⊙正数:补码等于原码和反码,如X=10110,则[X]补=[X]反=[X]原=00010110;
⊙负数:在反码的基础上,⑥让反码加1,如X=-11011,则[X]原=10011011,[X]反=11100100,[X]补=11100101。




移码

正数和负数的移码,都是在反码的基础上,让反码的符号位取反,即得该数的移码。如X=-11011,则[X]原=10011011,[X]反=11100100,[X]补=11100101,[X]移=01100101。




补充:小数的原码、反码、补码、移码的转换

原码、反码、补码、移码这几种表示方式之间的转换,基本上只有正数和负数转换的时候有些差别,当遇到小数时,只需要把小数也表示为二进制,转换方式跟正数一样。如X=0.25=0.01,[X]原=0.0100000,[X]反=0.1011111,[X]补=0.1100000,[X]移=1.1100000。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: