第一节
1 介绍了Python的二进制
2 我们利用0bxx来表示一个二进制,比如1 = 0b1,2 = 0b10等等
第二节
1 介绍了Python的函数bin(x),主要是用来求10进制数x的二进制值
2 比如bin(2)为0b10
3 练习:打印出2~5之间的数的二进制值
print bin(1) for i in range(2,6): print bin(i)
第三节
1 介绍了Python的int()函数
2 最普通的int()函数的用法是int(str)是把一个字符串转化成一个数字
3 但是int(str,base)可以用来把base进制下的值转化为10进制,比如int("0b11",2)得到的值就是3
4 举例:
print int("1",2) >> 1 print int("10",2) >> 2 print int("111",2) >> 7 print int("0b100",2) >> 4 print int(bin(5),2) >> 5 print int("11001001",2) >> 201
第四节
1 介绍了Python的左移和右移运算
2 位移运算的举例
Left Bit Shift (<<) 0b000001 << 2 = 0b000100 (1 << 2 = 4) 0b000101 << 3 = 0b101000 (5 << 3 = 40) Right Bit Shift (>>) 0b0010100 >> 3 = 0b000010 (20 >> 3 = 2) 0b0000010 >> 2 = 0b000000 (2 >> 2 = 0)
3 练习:把变量的shift_right的右移两位,shift_left的值左移两位
shift_right = 0b1100 shift_left = 0b1 # Your code here! shift_right >>= 2 shift_left <<= 2 print bin(shift_right) print bin(shift_left)
第五节
1 介绍了Python的另外一种位运算&
2 比如a&b,就是两个位都是1为1,否则为0
a: 00101010 42 b: 00001111 15 =================== a & b: 00001010 10
3 练习:把二进制0b1110&0b101的结果用二进制打印出来
print bin(0b1110&0b101)
第六节
1 介绍了Python的另外一种位运算|
2 比如a|b,就是如果两个位中有1就为1,否则为0
a: 00101010 42 b: 00001111 15 ================ a | b: 00101111 47
3 练习:把二进制0b1110|0b101的结果用二进制打印出来
print bin(0b1110|0b101)
第七节
1 介绍了Python的另外一种位运算^
2 比如a^b,就是如果两个位中如果是不同的那么就为1,否则为0
a: 00101010 42 b: 00001111 15 ================ a ^ b: 00100101 37
3 练习:把二进制0b1110^0b101的结果用二进制打印出来
print bin(0b1110^0b101)
第八节
1 介绍了Python的另外一种位运算~
2 比如~a的结果就是a的相反数在减一,对于a是正数或负数都满足
3 举例
print ~-4 >> 3 print ~-3 >> 2 print ~-1 >> 0 print ~0 >> -1 print ~1 >> -2 print ~2 >> -2 print ~3 >> -2