我的代碼可以將signed
的值從unsigned
字節流中轉換。我能夠做到這一點。但是,當我試圖將其轉換爲float
時,它不能簡單地進行轉換,而是將其四捨五入到下一個int
值。以下是我的代碼:無法將長浮點數轉換爲
def byte2int(bstr, width=32):
"""
Convert a byte string into a signed integer value of specified width.
"""
val = sum(ord(b) << 8*n for (n, b) in enumerate(reversed(bstr)))
if val >= (1 << (width - 1)):
val = val - (1 << width)
return val
str1=('\x00\xff\xa6\x10\xff\xff\xa6\x11\xff\xff\xa6\x12\xff\xff\xa6\x13\xff\xff\xa6\x12\xff\xff\xa6\x11\xff\xff\xa6\x10\xff\xff\xa6\x09\xff\xff\xa6\x08')
res=['','','','','','']
k=4
for l in range(0,6):
for i in range (0,4):
res[l]+= str1[i+4*l+k]
Ch1 = (byte2int(res[0]))
print Ch1
print (type(Ch1))
print float(Ch1/100)
這段代碼的結果是以下幾點:
-23023
<type 'long'>
-231.0`
但我想在-230.23
格式來顯示這一點。任何人都可以指導我。
謝謝。就像現在的魅力一樣。 – abhi1610