# 转10进制
int('010', 2) # 2进制
int('0x02', 16) # 16进制
# 转2进制
bin(10) # 10进制转二进制,输出'1010'
'{:08b}'.format(10) # 8bit的二进制,高位补零,输出'00001010'
bin(pow(2,5)-10) # 求-10的二进制补码,最低5bit位宽,
bin(pow(2,8)-10) # 8bit的二进制补码,输出'11110110'
# 转16进制
hex(16) # 输出'0x10'
字节、字符串、字节串等转换可参考该链接
2进制和16进制或者8进制的相互转换需要先转为10进制。
bin不能将负数转换为二进制补码,需要做一个变换,具体原理可以参考我的另一篇博客
MATLAB将十进制转换成二进制补码