我正处理解码Python练习的最后一部分,这让我很困惑。编码表示具有三个字符的第376到第65912个字:第一个字符始终是(0xFA),第二个字符是((code-376)// 256),第三个是((code-376)%256)。 例如,如果代码是30000,那么第一个输出char将是0xFA,即 第二个0x73,第三个0xB8。 (376的代码为FA 00 00。)
现在这是我的困惑,我怎么能将0xfa 0x73 0xb8解释为30000?因为这个词将是我字典的第30000个单词。非常感谢任何帮助,谢谢。
答案 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)