二进制中1的个数

题目

分析

这里将Python中的位运算做个总结:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 与运算(&)
print("与运算0&1:", 0&1)
print("与运算1&1:", 1&1)
print("与运算0&0:", 0&0)
#或运算(|)
print("或运算0&1:", 0|1)
print("或运算1&1:", 1|1)
print("或运算0&0:", 0|0)
#异或(^)
print("异或运算0&1:", 0^1)
print("异或运算1&1:", 1^1)
print("异或运算0&0:", 0^0)
#取反:~x = -(x+1)
print("取反:", ~0)
print("取反:", ~1)
print("取反:", ~-1)
#左移(<<) x<<y = x*2**y
print("左移:", 2<<1)
print("左移:", 2<<2)
print("左移:", 3<<2)
print("左移:", 4<<1)
#右移(>>) x>>y = [x/(2**y)] 取整
print("右移:", 2>>1)
print("右移:", 6>>1)
print("右移:", 6>>2)

与运算0&1: 0
与运算1&1: 1
与运算0&0: 0
或运算0&1: 1
或运算1&1: 1
或运算0&0: 0
异或运算0&1: 1
异或运算1&1: 0
异或运算0&0: 0
取反: -1
取反: -2
取反: 0
左移: 4
左移: 8
左移: 12
左移: 8
右移: 1
右移: 3
右移: 1

代码