题目
编写程序,取一个整数a从右端开始的4〜7位。
分析
直接分离各位
n=int(input("请输入一个整数"))
num=0
s=[]
while n>0:
temp=n%10
n=n//10
s.append(temp)
if (len(s))<7:
print("error")
else:
for i in range(3,7):
print(s[i])
结果
请输入一个整数 1234567
4
3
2
1
ps:
我看到其他小伙伴还有一种解法,我是看不懂,大佬可以帮忙讲解一下,此处还是把代码贴出来
a = int(input('input a number:\n'))
b = a >> 4
c = ~(~0 << 4)
d = b & c
print('%o\t%o' % (a, d))
解析:
可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用(0<<4)
(3)将上面二者进行&运算。