关于Python补码二进制溢出的一个程序

img


img


认真审题,尽量用简单方法,加以注释。

主要用到bin,int函数相互数制转换。代码可这样写:

def mult(a,b,N=12):#定义一个二进制转换十进制并判断是否溢出函数,位数默认为12
    num=int(a,2)*int(b,2)#转换为十进制整数
    if -2**(N-1)<=num<=2**(N-1)-1:#判断是否在数据范围内
        print(num)
    else:
        print('溢出错误')
#x,y=map(int,input().split())
for x,y in [(-12,100),(-30,-10),(4,-512),(4,512),(40,80)]:    
    x1=bin(x)#转十进制数为二进制
    y1=bin(y)#同上
    mult(x1,y1)#调用函数输出结果

运行:

F:\2021\qa\ot2>t9
-1200
300
-2048
溢出错误
溢出错误

如有帮助,请点击采纳按钮。