当前位置:   article > 正文

datawhale组队学习——Python基础——位运算_一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。 比如

一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。 比如

以下内容来自datawhale组队学习——Python基础,供自己学习记录,转载还请附上博客链接!
在这里插入图片描述

原码、反码和补码

二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用补码来表示。

原码:就是其二进制表示(注意,有一位符号位)。

00 00 00 11 -> 3
10 00 00 11 -> -3
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。

00 00 00 11 -> 3
11 11 11 00 -> -3
补码:正数的补码就是原码,负数的补码是反码+1。

00 00 00 11 -> 3
11 11 11 01 -> -3
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。

按位非操作 ~

~ 1 = 0
0 = 1
把num的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0)有符号整数的符号位在 ~ 运算中同样会取反。

00 00 01 01 -> 5
~

11 11 10 10 -> -6

11 11 10 11 -> -5
~

00 00 01 00 -> 4

按位与操作 &

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
只有两个对应位都为 1 时才为 1

00 00 01 01 -> 5
&
00 00 01 10 -> 6

00 00 01 00 -> 4

按位或操作 |

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
只要两个对应位中有一个 1 时就为 1

00 00 01 01 -> 5
|
00 00 01 10 -> 6

00 00 01 11 -> 7

按位异或操作 ^

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
只有两个对应位不同时才为 1

00 00 01 01 -> 5
^
00 00 01 10 -&

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/278034
推荐阅读
相关标签
  

闽ICP备14008679号