将十六进制表示法字面转换为字符串,反之亦然

时间:2014-07-08 20:01:30

标签: python hex implicit-conversion

我正在编写的函数将校验和(格式:'* 76')作为字符串(与NMEA字符串隔离)。字符串格式的校验和称为“Obs”(从字符串中观察)。然后它从字符串的其余部分计算校验和,并将答案作为十六进制(终端:0x76),这将被称为'Com'(从字符串计算)。现在我需要将一个转换为另一个来相互比较它们。

我尝过这样的话:

HexObs = hex(Obs) #with Obs as '0x76' and '0*76'

这给了我一个错误。

StrCom = str(Com)

其中:'118'

以前没有问题我认出了我的问题。 有谁知道如何将一个转换为另一个? Tnx提前。

2 个答案:

答案 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'