我正在使用 Python 和 GATT 库 pxexpect 来处理一些数据,但在尝试将十六进制值转换为整数时遇到问题。这是我看到的具体错误:
print(int(gatt.before, 16)),
^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 16: b'0f 18 '
这是产生错误的代码..
print(int(gatt.before, 16)),
print("%")
变量 gatt.before 包含值 b'0f 18 '。看来这是一个字节对象,表示带空格的十六进制值。然而,以 16 为基数的 int() 需要一个不带空格的字符串
我尝试过的:
# Assuming gatt.before is a byte string returned from a GATT command. Here represented by gatt_before
gatt_before = b'0f 18 '
# Decode the byte string to a regular string
hex_string = gatt_before.decode('utf-8')
# Remove spaces and any other non-hexadecimal characters
cleaned_hex_string = ''.join(hex_string.split())
# Convert the cleaned-up string to an integer
integer_value = int(cleaned_hex_string, 16)
print(integer_value)