关于Python二进制及补码的一个小程序

img


请用以下几组测试
x=128,y=8
x=129,y=8
x=1,y=12
x=2047,y=12
写程序并加以注释

x=int(input("请输入一个十进制数"))
y=int(input("请输入位数"))
# 判断是否在y的二进制数表示范围内
if x>2**(y-1):
    print(False)
else:
   #  将x转换为二进制补码
   print ((bin(((1 << y) - 1) & x)[2:]).zfill(y))

img

img

img

img

img