Python将十六进制数字位数的ASCI表示形式转换为字符串

时间:2018-10-01 14:35:52

标签: python ascii

我想让函数完全这样做:

authors

那是什么功能?

为什么我需要这个? 用于计算向某些工业设备发送的消息中的校验和

例如命令R8:

#This is my imput number
MyNumberDec = 114
MyNumberHex = hex(MyNumberDec)

print (MyNumberDec)
print (MyNumberHex)

#Output looks exactly like this:
#114
#0x8a

HexFirstDigitCharacter = MagicFunction(MyNumberHex)
HexSecondDigitCharacter = MagicFunction(MyNumberHex)
#print (HexFirstDigitCharacter )
#print (HexSecondDigitCharacter )

#I want to see this in output
#8
#A

字节1和2是命令,字节3和4是校验和 计算校验和的方式:0x52 + 0x38 = 8A 我必须发送ASCII 8作为第三个字节,并发送ASCII A作为第四个字节

也许我不需要我的魔术功能,但需要其他解决方案?

1 个答案:

答案 0 :(得分:1)

您可以使用字符串格式化程序将整数转换为不带前'0x'的十六进制字符串:

MyNumberDec = 114
MyNumberHex = '%02x' % MyNumberDec
print(MyNumberHex[0])
print(MyNumberHex[1])

这将输出:

7
2