我正在从USB通过USB读取8位值到我的计算机。 python脚本在我的计算机上运行,并持续显示8位值,这些值是十六进制格式。但是,当十六进制代码对应于ASCII代码时,python将显示ASCII字符而不是原始十六进制代码。
我需要对输入数据做什么才能显示由8位表示的整数?我不想用十六进制或ASCII格式。问题是这些值是以斜线而不是熟悉的零进入:' \ xff'而不是' 0xff'。如果我去:
int('0xff',16)
结果是255,但如果我尝试
int('\xff',16)
我收到一个错误:对于带有基数为16的int(),文字无效。
有没有人知道一种简单的方法来处理十六进制代码中的\ x(不使用字符串的强力操作)?
答案 0 :(得分:27)
ord('\xff')
应该给你你想要的东西
\x##
代表一个字节或字符,如果你愿意,而"FF"
是一个由两个字符组成的字符串,然后可以用int(my_string,16)
处理,但当你有一个字符时可能想要ord
你可以通过询问类似len('\xFF')
的内容来看到这一点,你会看到它只是一个字符