# 题目一:二进制与十进制的相互转换
def d2b(decimal_int):
if decimal_int>sys.maxsize or decimal_int<(0-sys.maxsize):
print ('Parameter Error')
return -1
la = []
if decimal_int < 0:
return (bin(((1 << 32) - 1) & decimal_int)[2:]).zfill(32)
while True:
decimal_int, remainder = divmod (decimal_int, 2)
la.append (str (remainder))
if decimal_int == 0:
return ''.join (la[::-1])
def b2d(binary_string, flag = False):
if flag==False:
sum = 0
length = len (binary_string)
if length > 32:
print ('Parameter Error')
return -1
for i in range (length):
sum += int (binary_string[len (binary_string) - 1 - i]) * pow (2, i)
# print(u"转换成十进制数是:", sum)
return sum
else:
binary_string=list(binary_string)
binary_string[0]='0'
binary_string=''.join(binary_string)
sum = 0
length = len (binary_string)
if length > 32:
print ('Parameter Error')
return -1
for i in range (length):
sum += int (binary_string[len (binary_string) - 1 - i]) * pow (2, i)
# print(u"转换成十进制数是:", sum)
return (0-sum)
如果对您有帮助,请打赏!谢谢!