Loading...
墨滴

浅唱与高歌

2021/09/10  阅读:30  主题:红绯

python学习7

第 15 节课 运算符(位)

一、二进制

1.定义:

  • 二进制(binary)在数字和数字电路中指以 2 为基数的计数系统,以 2 为基数代表系统是二进位制的。由 0 和 1 表示。每一个数字称为一个比特(Bit,Binary digit 的缩写)

2.进制转换

十进制转换为二进制

  1. 普通方法:除 2 取余,逆序排列
#例如125转换为二进制
125 / 2 = 62 余 1
62 / 2 = 31 余 0
31 / 2 = 15 余 1
15 / 2 = 7 余 1
7 / 2 = 3 余 1
3 / 2 = 1 余 1
1 / 2 = 0 余 1
余数从低位到高位依次排列:1111101
  1. python 方法:bin()
#例如125转换为二进制
a = 125
print(bin(a))

#运行结果:
#0b开头表示二进制数
0b1111101

二进制转换为十进制

  1. 普通方法:按权展开求和
#例如1111101转换为十进制
1 ==> 1*2^6 == 64
1 ==> 1*2^5 == 32
1 ==> 1*2^4 == 16
1 ==> 1*2^3 == 8
1 ==> 1*2^2 == 4
0 ==> 0*2^1 == 0
1 ==> 1*2^0 == 1

依次相加:64+32+16+8+4+0+1=125
  1. python 方法:int()
#例如1111101转换为十进制
a = 0b1111101
print(int(a))

运行结果:
125

二、位运算

1.位运算符

运算符 描述
& 按位与运算-参与运算的两个值,如果两个相应位都为 1,则该位结果为 1,否则为 0
| 按位或运算-只要对应的两个二进位有一个为 1 时,结果就为 1
^ 按位异或运算-当两对应的二进位相异时,结果为 1
~ 按位取反运算-对数据的每个二进位取反,即把 1 变 0,0 变 1。~x 等价于-(x+1)
<< 左移动运算-运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补 0
>> 右移动运算-运算数的各二进位全部右移若干位,由">>"右边的数指定移动的位数
  • 注意:按位取反~没有表中说的那么简单,要知详情,自行百度

2.例 1:60 & 13

#二进制位数不同时,前面补0
60 ==> 111100
&        &
13 ==> 001101
||       ||
12 <== 001100

#求证:
a = 60
b = 13
print(a & b)

#运行结果:
12

3.例 2:60 | 13

#二进制位数不同时,前面补0
60 ==> 111100
|        |
13 ==> 001101
||       ||
61 <== 111101

#求证:
a = 60
b = 13
print(a | b)

#运行结果:
61

3.例 3:60 ^ 13

#二进制位数不同时,前面补0
60 ==> 111100
^        ^
13 ==> 001101
||       ||
49 <== 110001

#求证:
a = 60
b = 13
print(a ^ b)

#运行结果:
49

学习资源来源于bilibili视频网站


vx 扫码关注小徐的快乐学习时光

浅唱与高歌

2021/09/10  阅读:30  主题:红绯

作者介绍

浅唱与高歌