来自菜鸟教程
https://www.runoob.com/python/python-exercise-example54.html
题目:取一个整数a从右端开始的4〜7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用(0<<4)
(3)将上面二者进行&运算。
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
a = int(input('input a number:\n'))
b = a >> 4
c = ~(~0 << 4)
d = b & c
print ('%o\t%o' %(a,d))
以上实例输出结果为:
input a number:
9
11 0
来自百度回答:
~按位取反,
<<左移运算
比如0的二进制为00……0000000
那么~0就为11……1111111
而0<<4就是将0的二进制码向左移动4位,右边补0,
即得11……1110000
(0<<4)就是将上一步得到的二进制码(11……1110000)取反,
得00……0001111
网友评论