python练手_54-位取反、位移动
2019-02-17 本文已影响0人
学子CH
题目 取一个整数a从右端开始的4〜7位。
程序分析 可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用(0<<4)
(3)将上面二者进行&运算。
# -*- coding:utf-8 -*-
# @Author: CH
"""
@project: python study
@time:2019/1/7-23:41
@file_name:【程序54】位取反、位移动.py
@IDE:PyCharm
@else: DO NOT STOP STUDYING!!!
"""
# 题目 取一个整数a从右端开始的4〜7位。
#
# 程序分析 可以这样考虑:
# (1)先使a右移4位。
# (2)设置一个低4位全为1,其余全为0的数。可用(0<<4)
# (3)将上面二者进行&运算。
a=int(input('输入一个数字: '))
b=0 # 0
b=~b # 1
b=b<<4 # 10000
b=~b # 1111
c=a>>4
d=c&b
print('a:',bin(a))#bin二进制的意思
print('b:',bin(b))
print('c:',bin(c))
print('d:',bin(d))