原码, 反码, 补码

对于有符号数而言:

原码就是一个数的二进制表示. 二进制的最高位是符号位, 0 表示正数, 1 表示负数. 计算机用数的原码进行显示,数的计算和存储是用补码进行的.

正数的原码, 反码和补码都一样, 即正数三码合一.

负数的反码的计算方式: 原码的符号位不变, 其他位取反, 即 1 变成 0, 0 变成 1.

负数的补码的计算方式: 反码加 1. 因此负数的反码等于补码减 1. 即:

负数的补码 = 反码 + 1

负数的反码 = 补码 - 1

0 的反码, 补码都是 0.

一般都是先根据一个数写出它的二进制表示, 即得到原码, 然后从原码得到反码, 再从反码得到补码. 最后用补码进行计算, 计算结果是补码, 再将这个结果转化为反码, 再将反码转化为原码, 最后输出原码. 即: 一个数 原码 (二进制表示) 反码 补码 进行计算 补码 反码 原码.

计算得到补码时, 如果补码的最高位为 0, 说明是正数, 则反码和原码也都和补码相等 (三码合一).

负数的原码就是绝对值的原码的最高位的 0 改为 1.

-128 没有原码和反码,只有补码。

posted @   有空  阅读(23)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示