原码,反码,补码和移码

  复习一下!

  

  1. 原码:如果机器字长为n,那么一个数的原码就是一个n位的二进制数,其中最高位为符号位,正数为0,负数为1.剩下的n-1位表示该数的绝对值。
  2. 反码:正数的反码是其本身,负数的反码就是在原码的基础上,符号位不变其他位按位取反就可以了。
  3. 补码:正数的补码是其本身,负数的反码是在其原码的基础上符号位不变,其余各位取反后加一。
  4. 移码:不管是正数还是负数,只要将其补码的符号位取反即可。
  5. 举例

 

数值1

数值-1

1+(-1)

+0

-0

原码

0000 0001

1000 0001

1000 0001

0000 0000

1000 0000

反码

0000 0001

1111 1110

1111 1111

0000 0000

1111 1111

补码

0000 0001

1111 1111

0000 0000

0000 0000

0000 0000

移码

1000 0001

0111 1111

0000 0000

0000 0000

0000 0000

  注意1:溢出部分不计算在内。

  注意2:0的补码移吗应当特殊记忆。

      [+0]  ≠ [-0]

      [+0] ≠ [-0]

      [+0] = [-0]

      [+0] = [-0]

posted @   柒间  阅读(396)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示