我在Octave中从套接字(使用套接字包)接收Big-endian数据。
此数据的某些部分包含float(32位)值,但这些值编码为uint8。
例如:(67 128 0 0)
Octave有没有办法计算相应的浮点数/单值?
答案 0 :(得分:2)
这样做的方法是使用typecast()
:
octave> typecast (uint8 ([67 128 0 0]), "single")
ans = 4.6012e-41
如果您有结束问题,请使用swapbytes()
:
octave> swapbytes (typecast (uint8 ([67 128 0 0]), "single"))
ans = 256
如果您想要更多地使用它,或者需要更多灵活性,请查看bitpack()
和bitunpack()
:
octave> data = uint8 ([67 128 0 0 67 127 0 0 67 126 0 0 67 125 0 0])
data =
67 128 0 0 67 127 0 0 67 126 0 0 67 125 0 0
octave> bitpack (bitunpack (flipud (reshape (data, 4, []))), "single")
ans =
256
255
254
253