0.摘要
本文主要介绍,如何将十进制数,转换为带符号位且位宽固定的二进制数值。
这种转换关系,通常用在基于二进制运算的硬件上。
1.前言
负数,在计算机里是以补码的形式存在的,原码取反-->+1;
正数,在计算机里补码与原码完全相同。
因此,在计算中,二进制的计算都是基于补码进行的,结果也是以补码进行表示。
2.实现
def dec2bin(dec_num, bit_wide=16):
_, bin_num_abs = bin(dec_num).split('b')
if len(bin_num_abs) > bit_wide:
raise ValueError # 数值超出bit_wide长度所能表示的范围
else:
if dec_num >= 0:
bin_num = bin_num_abs.rjust(bit_wide, '0')
else:
_, bin_num = bin(2**bit_wide + dec_num).split('b')
return bin_num
if __name__ == "__main__":
file_name = "./bin_num.dat"
with open(file_name, 'w') as f:
bit_wide = 8
f