码迷,mamicode.com
首页 > 其他好文 > 详细

超简单的小例子揭开机器数的奥秘——原码、反码、补码、移码

时间:2015-04-25 00:17:39      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:原码   反码   补码   移码   机器数   

 

       各种数值在计算机中的表示形式称为机器数,机器数采用二进制数来表示数据,数据的正负号也分别用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。



         

超简单的小例子揭开机器数的奥秘——原码、反码、补码、移码

标签:原码   反码   补码   移码   机器数   

原文地址:http://blog.csdn.net/huyuyang6688/article/details/45242247

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!