使用base 2 python将十六进制转换为十六进制
如何将基数为1(0x1)的数字十六进制转换为基数为2(0x01) 十六进制B1=0x1 十六进制B2=0x01使用base 2 python将十六进制转换为十六进制,python,python-3.x,Python,Python 3.x,如何将基数为1(0x1)的数字十六进制转换为基数为2(0x01) 十六进制B1=0x1 十六进制B2=0x01 hex(int('110',2))=0x06因为hex生成一个字符串,所以您可以在转换为hex后解析该字符串 leading_zeros = 2 str_hex = hex(int('110', 2)) final_hex = '0x'+str_hex[2:].zfill(leading_zeros) 正如Martijn Pieters在评论中指出的那样,更好的解决方案是使用内置
hex(int('110',2))=0x06因为
hex
生成一个字符串,所以您可以在转换为hex后解析该字符串
leading_zeros = 2
str_hex = hex(int('110', 2))
final_hex = '0x'+str_hex[2:].zfill(leading_zeros)
正如Martijn Pieters在评论中指出的那样,更好的解决方案是使用内置于
格式
函数的Python
format(5, '#04x')
我想你的意思是你想要前导零?如果你用谷歌搜索短语“Python convert hex to binary”,你会找到比我们在这里的答案中解释得更好的教程。你在这里使用了错误的术语。十六进制是以16为基数的数字表示法,以2为基数的是二进制。相反,您尝试使用2位数字将十六进制格式化为,并根据需要用零填充。@Guilliz您的意思是将二进制(以2为基数)转换为十六进制(以16为基数)?正确的解决方案是不要首先使用
hex()
函数format(value,#04x')
将为您提供正确的格式,而无需字符串连接和str.zfill()
调用。@Martijn可能带有value&0xFF
如果需要限制,这取决于OP的真正目的是什么…@MartijnPieters更好的解决方案(尽管您实际上需要`.\04x')。谢谢你指出这一点。@Stephen:啊,是的,我总是忘记在添加
时调整全宽。。。