Python 练习实例54

2022-05-07  本文已影响0人  loinue

来自菜鸟教程
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

上一篇 下一篇

猜你喜欢

热点阅读