0
点赞
收藏
分享

微信扫一扫

C#(一):原码、反码、补码


正数示例

1
0000 0001

5
0000 0101

负数示例

-1 
由 有符号二进制 转 十进制数字
补码:1111 1111 => 反码:1000 0000 => 原码:1000 0001 => -1

由 十进制数字 转 有符号二进制
-1 => 原码:1000 0001 => 反码:1111 1110 => 补码:1111 1111


-9
由 十进制数字 转 有符号二进制
-9 => 原码:1000 1001 => 反码:1111 0110 => 补码:1111 0111

由 有符号二进制 转 十进制数字
补码:1111 0111 => 反码:1000 1000 => 原码:1000 1001 => -9


-5
由 十进制数字 转 有符号二进制
-5 => 原码:1000 0101 => 反码:1111 1010 => 补码:1111 1011

由 有符号二进制 转 十进制数字
补码:1111 1011 => 反码:1000 0100 => 原码:1000 0101 => -5

计算方法

  • 概念:

​1. 所有的数据在计算机中存储和运算都是通过补码进行的​​​​2. 正数的 原码、反码、补码 都是相同的​​​​3. 补码最高位 为0表示正数,为1表示负数​

  • 由​​负数​​​计算​​补码​​方法

负数:-9
## 1. 因为是负数,所以最高位为 1
1000 0000
## 2. 9的二进制为
0000 1001
## 3. 计算原码
1000 1001
## 4. 计算反码,反码为符号位保持不变,其余各位取反
1111 0110
## 5. 计算补码,补码为反码加1
1111 0111

  • 由​​补码​​​计算​​原码​​​方法(​​将补码当成原码计算其补码即为原码​​)

补码:1111 0111
## 1. 计算反码,反码为符号位保持不变,其余各位取反
1000 1000
## 2. 计算补码(原码),补码为反码加1
1000 1001


举报

相关推荐

0 条评论