我需要将bytes个数据转换为带符号的int32_t格式,并将其放入列表中.(它是关于通过以太网从外部ADC转换器接收ADC数据).
对我来说,迄今为止最快的方法是:
tempADC = np.ndarray(256,np.intc,rawADC).tolist()
256-i将有256个int32_t值
RawADC-是否为原始字节:b'T\x08\x00\x00W\xf2\xff\xff\xfe\....
一些度量(mean = 20 usec0次迭代):mean = 20 usec,max = 1130 usec
第二种方法:
ln = int(len(rawADC)/4)
tadc = [0]*256 #prealloc list - buffer
for i in range(ln):
tadc[i] = (int.from_bytes(rawADC[i:(i+4)], byteorder='little', signed=True))
一些度量(mean = 181 usec0次迭代):mean = 181 usec,max = 1150 usec
有没有更有效的方法来做到这一点?
mean和max之间的巨大差异很奇怪-但我的程序中有两个线程,所以可能这就是原因?!?