【经典算法】 原码,反码,补码之间的转换问题

这篇博客介绍了原码、反码、补码之间的转换规则,特别是对于负数的处理。在正数中,原码、反码和补码相同,而负数的原码到反码是除符号位外所有位取反,反码到补码是所有位加1(符号位不变)。对于原码到补码的转换,从右向左找到第一个1,左边除符号位翻转,右边保持不变。博主提供了简单的实现代码,并鼓励读者尝试理解和编码实践。
摘要由CSDN通过智能技术生成
                       

背景知识补充

正数:原码=反码=补码
负数:原码 反码 补码之间 转换有规则(下面讨论)
0:分为+0 和 -0去考虑,符合上面那两条规则

补充一个概念叫做符号位,把每个数第一位当作符号位,取0为整数,取1为负数

对负数的讨论:
1,原码到反码  除符号位 全部 翻转
 比如说: 原码:100001  反码应该为 111110 (后面五位全部翻转)
2,反码到补码(可以不看,直接看第三条比较简单,但是还是知道比较好)  整体加上1
例子: 反码:111110  补码:111111  (整体加1) 但是符号位永远不运算
3,原码到补码 从原码右往左看,找到第一个1 左边除符号位全部翻转,右边保持
例子:原码:100001 补码:111111 (看懂了吗?不懂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值