利用python实现带符号(正负)二进制编码转十进制整数
程序代码实现
最近在做一个关于带符号二进制整数转十进制的一个小case,去网上搜了很多,发现现有的程序不是很复杂就是写的让人看得不是很明白,针对这个过程,自己写了两个比较简单易懂的函数去实现。
def add_1(binary_inpute):#二进制编码加1
_,out = bin(int(binary_inpute,2)+1).split("b")
return out
def reverse(binary_inpute):#取反操作
binary_inpute = list(binary_inpute)
binary_out = binary_inpute
for epoch,i in enumerate(binary_out):
if i == "0":
binary_out[epoch] = "1"
else:
binary_out[epoch] = "0"
return "".join(binary_out)
a = "000000000011010"
if a[0] == "1":#判断为负数
a_reverse = reverse(a[1:]) # 取反
a_add_1 = add_1(a_reverse) # 二进制加1
a_int = -int(a_add_1, 2)
else:
a_int = int(a[1:])
print(a_int)
##思路图