【问题标题】:Converting hex to int in python在python中将十六进制转换为int
【发布时间】:2013-11-18 03:35:09
【问题描述】:

我正在通过 USB 从 ADC 读取 8 位值到我的计算机。一个 python 脚本在我的计算机上运行并连续显示 8 位值,这些值是十六进制形式的。但是,当十六进制代码对应于 ASCII 代码时,python 将显示 ASCII 字符而不是原始十六进制代码。

我需要对传入的数据做什么才能只显示 8 位表示的整数?我不希望它是十六进制或 ASCII 格式。问题是这些值是以斜线而不是熟悉的零出现的:'\xff' 而不是 '0xff'。如果我去:

int('0xff',16)

结果是 255,但如果我尝试

int('\xff',16)

我收到一个错误:int() 以 16 为底的无效文字。

有谁知道处理十六进制代码中的 \x 的简单方法(无需对字符串进行暴力操作)?

【问题讨论】:

  • int(r'\xff'[2:], 16) 可以。
  • 他正在从其他地方获取'\xff',但他无法选择将其设为我不认为的文字字符串

标签: python hex ascii


【解决方案1】:
ord('\xff')

应该给你你想要的。

\x## 表示单个字节或字符,如果你愿意的话,而"FF" 是一个由两个字符组成的字符串,然后可以用int(my_string,16) 处理,但是当你有一个字符时,你可能需要ord .

您可以通过询问 len('\xFF') 之类的内容来看到这一点,您会看到它只是一个字符。

【讨论】:

    猜你喜欢
    • 2011-11-27
    • 2015-09-17
    • 1970-01-01
    • 2018-07-24
    • 2021-06-22
    • 2010-09-17
    • 2010-12-15
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多