原码、反码、补码、移码的计算转换
创作时间:
作者:
@小白创作中心
原码、反码、补码、移码的计算转换
引用
CSDN
1.
https://m.blog.csdn.net/qq_52964132/article/details/140052527
在计算机科学中,原码、反码、补码和移码是表示二进制数的四种不同方式。本文将详细介绍这四种编码方式的转换规则,并通过具体例子进行验证。
正数
对于正数来说,原码、反码和补码都是一样的,不会发生变化。因此,在计算时,首先需要查看第一位符号位,如果发现是正数,那么三者都不变。移码则是在补码的基础上将符号位取反。
负数
负数的编码转换规则相对复杂一些。
原码 & 反码
- 符号位不变
- 数值位都取反
反码 -> 补码
- 末尾加1
原码 <-> 补码
- 从右向左找到第一个“1”
- “1”左边所有的数值位按位取反
补码的相反数
- 取反(按位取反):将补码中的每一位取反,即0变为1,1变为0。
- 加1:在取反后的结果上加上1。
例子
假设有一个8位补码表示的数 00001001(即十进制的9),我们想要将其变为其相反数。
- 原数:00001001
- 取反后:11110110
- 加1后:11110111
因此,00001001 的相反数是 11110111,即十进制的 -9。
验证
为了验证这个结果,我们可以将 11110111 转换回十进制:
- 最高位是1,表示这是一个负数。
- 取反:00001000
- 加1:00001001
结果是9,但由于最高位是1,所以是 -9。
特殊情况
对于补码表示的最小值(例如8位补码的最小值是 10000000,即 -128),其相反数在补码系统中没有对应的正数表示,因为补码系统的正数范围比负数范围少1。在这种情况下,最小值的相反数仍然是它自己。
移码
移码是在补码的基础上将符号位取反。
方法总结
- 首先根据符号位判断正负
- 若为正,则都不变,移码变符号位;若为负,则需要进一步的分情况讨论
- 若为原反,符号不变数值变;若反补,单向末位要加1;若原补,从右到左先找“1”,1左取反;若补反,先变原码再反码;若有移,先变补码再变化
练习
热门推荐
楼层17层选几层最好?专家解答最佳选择
高血压的人吃什么油好
脖子上长出“小肉粒”,可能是这2个问题
英伟达触发两大看跌信号,短期或继续向南发展
个人信息泄露去哪里举报投诉
个人信息被泄露怎么办?举报和处理全攻略
外嫁女不扫墓,扫墓断娘家根,出嫁的女儿们,清明节你上坟了吗?
融点的定义是什么?融点对物质性质有何影响?
产品经理如何做总监工作
银行的金融产品创新与市场需求挖掘的有效途径?
不用20年,“多层”和“高层”住宅的差距就出来,很真实
建筑工程、室外工程、市政工程和公路工程的定义
一般公众如何提升网络安全意识与防护能力
我们在什么情况下需要“健脾补脾”?
骁龙 vs 天玑:手机处理器全面对比,助你轻松做出选择
收据的正确写法是怎样的
犯人监外执行条件全解析:哪些情况可以申请?再次犯罪如何处理?
2024监外执行相关规定是怎样的
刘禹锡这首晚年赠诗,仅 40 字,用豁达心境,点破衰老困境中的人生真谛
2025年英国高中留学申请指南
CPU和GPU的发展现状
中国超级抗原生物疫苗国际专家论证会在京召开
如何在北京找到合适的租房选择?这些选择如何影响居住体验?
离婚后孩子的监护权是什么
欧洲五大联赛与中超联赛:历史、特点及冠军盘点
材料 101:什么是美利奴羊毛?
“云游”乌兰察布 这些景点你都“打卡”了吗?
51单片机编程入门指南
怎么样减少肺癌晚期痛苦?哪个方法效果好
线性回归(概述及案例)