我正在编写的函数将校验和(格式:'* 76')作为字符串(与NMEA字符串隔离)。字符串格式的校验和称为“Obs”(从字符串中观察)。然后它从字符串的其余部分计算校验和,并将答案作为十六进制(终端:0x76),这将被称为'Com'(从字符串计算)。现在我需要将一个转换为另一个来相互比较它们。
我尝过这样的话:
HexObs = hex(Obs) #with Obs as '0x76' and '0*76'
这给了我一个错误。
和
StrCom = str(Com)
其中:'118'
以前没有问题我认出了我的问题。 有谁知道如何将一个转换为另一个? Tnx提前。
答案 0 :(得分:1)
我认为你的问题是将原版变成实际的十六进制形式
tobs = '76'
obs = hex(int('0x' + tobs, 16))
将为您提供一个实际的十六进制值来进行比较
或者你可以使用:
tobs = '76'
com = '0x76'
tcom = com[2:]
然后比较tobs& TCOM
答案 1 :(得分:0)
要从字符串十六进制表示转到,请使用:
>>> int('0x76', 16)
118
第二个参数是基础。
要从整数转换为字符串十六进制表示,请使用:
>>> hex(118)
'0x76'