如何应用反向逻辑进行解码?

时间:2015-03-17 02:10:06

标签: python encoding character-encoding decode decoding

我正处理解码Python练习的最后一部分,这让我很困惑。编码表示具有三个字符的第376到第65912个字:第一个字符始终是(0xFA),第二个字符是((code-376)// 256),第三个是((code-376)%256)。 例如,如果代码是30000,那么第一个输出char将是0xFA,即 第二个0x73,第三个0xB8。 (376的代码为FA 00 00。)

现在这是我的困惑,我怎么能将0xfa 0x73 0xb8解释为30000?因为这个词将是我字典的第30000个单词。非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

检查第一个字符,如果是0xFA,则

code = second * 256 + third + 376

答案 1 :(得分:1)

get_code = lambda c: int(c[1], 16)*256 + int(c[2], 16) + 376

chars = ('0xFA', '0x73', '0xB8')
print get_code(chars)