我正在从ADC读取二进制输入寄存器,我得到的输入如下:
data = '\xff\xff\xff\xff' , data[0] = '\xff'
我必须将数据转换为2的补码fix8_7(LSB的第7位中的固定二进制点),我使用以下函数来实现:
def twos_comp(val, bits):
# Compute the 2's compliment of int value val
if( (val&(1<<(bits-1))) != 0 ):
val = val - (1<<bits)
return val
def fix8_7(val):
# Take a signed int of 8 bit an pass it to fix8_7 (fixed binary point in 7th LSB)
val = val / 128.0
return val
使用方法是:
^{pr2}$但是我遇到了一个错误,因为我需要输入一个十六进制值,比如0xff或ff no\xff,我该如何解决这个问题??在
如果您正在寻找将}函数,如下所示
\xff
更改为0xff
的方法,只需使用ord
和{您的} 将输入转换为
twos_comp(val, bits)
函数要求参数是整数。您可以直接获得整数,而无需先使用^{'0xff'
字符串:相关问题 更多 >
编程相关推荐