前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【软考路上】——原码、反码、补码、移码

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

作者头像
DannyHoo
发布2018-09-13 11:41:58
2.1K2
发布2018-09-13 11:41:58
举报
文章被收录于专栏:Danny的专栏Danny的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1336978

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年04月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原码
  • 反码
  • 补码
  • 移码
  •        补充:小数的原码、反码、补码、移码的转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档