0
点赞
收藏
分享

微信扫一扫

正数负数的取反运算推导过程


取反题目

题目:数据常用位十进制数据举例 我们计算a = 60的取反运算c=~a
求c

引用的知识点

知识点:
正数的反码 补码 都一样。
0的补码反码都一样
负数的反码,最高是标记符号位,其他位置1变0 1变0
负数的补码 反码+1

步骤


斜体样式本篇我们全用8位二进制来解析

  1. 换算二进制

60变二进制:0011 1100的由来

2的位方

128

64

32

16

8

4

2

1

60拆二进制

0

0

1

1

1

1

0

0

  1. 二进制换算补码

原因:计算机存储一个数值时, 是将数的补码存储在磁盘上。
正数的补码 反码即其本身所以60的补码还是:0011 1100

3.取反运算(的到目标数据的补码)

补码的1变0 0变1
得到了我们目标取反运算。 这个二进制即我们目标数据补码。
所以我们得到:1100 0011(目标数据存在磁盘得样子,也就是它的补码)

4.目标数据补码推算 反码

我们通过这个目标数据的补码-1 的到它的反码
得到:1100 0010

5.目标数据反码推算 原码

此时这个数已经是一个负数了 保持它的符号位不变,其他0变1 1变0.
1011 1101

6.带符号的原码换算十进制

2的位方


64

32

16

8

4

2

1

负数原码

1

0

1

1

1

1

0

1

-1*(32+16+8+4+1)=-61

则:60的取反运算时 -61

举一反三

我们反推-61的取反运算
1.转二进制
1011 1101
2.算反码(符号不动 其他1 0 互换)
1100 0010
3.算补码 反码+1
1100 0011 (-61躺在磁盘的姿势就这样)
4.取反运算
0011 1100 (得到我们目标数据躺在磁盘的姿势了,也就是它的补码)
5.补码算反码 原码(正数的补码 反码原码一样)
0011 1100
6.二进制换算十进制:

2的位方

128

64

32

16

8

4

2

1

0

0

1

1

1

1

0

0

盘它:
32+16+8+4 = 60
所以,-61的取反运算是60


举报

相关推荐

0 条评论