目录
二,计算机中通过补码计算 和 通过补码向内存中存储提取数据。
3.补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路;
一,原码 反码 补码 分别是什么,如何相互转换。
1,原码
原码就是我们所看到的十进制数,直接转换成二进制数,得到的就是原码。
2,反码
若该数值为正数 或 无符号类型:
则原码就是反码。
若该数值为负数:
反码通过原码除符号位以外的其它位按位取反得到反码。
3,补码
若该数值为正数 或 无符号类型:
则反码就是补码。
若该数值为负数:
补码通过反码+1得到。
拓展:
1,二进制B 如何转换成 十进制D
| 二进制的位权 | 2^3 | 2^2 | 2^1 | 2^0 |
| 10的二进制B | 1 | 0 | 1 | 0 |
| 每位所代表 的十进制数 |
1*2^3 | 0*2^2 | 1*2^1 | 0*2^0 |
综上所述:
1010B == 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 == 8 + 0 + 2 + 0 ==10
4,示例展示 :原码 反码 补码 的转换过程
按字节编址的内存空间,signed int a = -10 ; 来具体展示
| 类型 signed int | 高位字节数据 | 低位字节数据 | ||
| 原码 -10 | 1 000 0000 | 0000 0000 | 0000 0000 | 0000 1010 |
| 反码 -10 (取反) | 1 111 1111 | 1111 1111 | 1111 1111 | 1111 0101 |
| 补码 -10 (+1) | 1 111 1111 | 1111 1111 | 1111 1111 | 1111 0110 |
通过上面的展示可以更好的理解,原码是怎么一步一步的转变到补码的。

本文详细介绍了原码、反码和补码的概念,以及它们之间的转换方法。通过实例展示了二进制与十进制的转换,并分析了补码在计算机中用于计算和内存存储的优势,包括统一处理符号位和数值域、简化加减法运算以及硬件电路设计的便利性。
最低0.47元/天 解锁文章
5413

被折叠的 条评论
为什么被折叠?



