Python 练习实例54

Python 编程100例Python 编程100例

题目:取一个整数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

Python 编程100例Python 编程100例

Python 练习实例55 Python 100例 题目:学习使用按位取反~。 说明: 二进制数在内存中以补码的形式存储。 按位取反:二进制每一位取反,0 变 1,1 变 0。 最高位为符号位,正数的符号位为 0,负数为 1。 对正数来说,最高位为 0,其余各位代表数值本身(以二进制表示),如 +42 的补码为 00101010。 对负数而言,把该数绝对值的补码按位取反,然后对整个数加 1,即得该数的补码。如 -42 的补码为 1..