Julia - 从 UInt8 数组读取 UInt32
Julia - read UInt32 from UInt8 Array
我有从 TCPSocket 获得的 UInt8 数据数组。
我想从不同的索引读取 UInt32s 和 UInt16s。
例如:
data = UInt8[0xFF, 0x00, 0x00, 0x00, 0xAA, 0x00]
// Something like this:
extracted_UInt32 = data.readUInt32(1) # [1-4]
extracted_UInt16 = data.readUInt16(5) # [5-6]
完全像 Node.js 的 Buffer.readUInt16LE(offset)
:https://nodejs.org/api/buffer.html#buffer_buf_readint16le_offset
谢谢!
您可以read
缓冲区中给定类型的数据:
julia> data = IOBuffer(UInt8[0xFF, 0x00, 0x00, 0x00, 0xAA, 0x00]);
julia> a = read(data, UInt32)
0x000000ff
julia> b = read(data, UInt16)
0x00aa
您可以直接从 TCP 套接字执行此操作,而无需具体化为字节向量。
我还发现 reinterpret 可以使用:
data = UInt8[0xFF, 0x00, 0x00, 0x00, 0xAA, 0x00]
a = reinterpret(UInt32, data[1:4])
b = reinterpret(UInt16, data[5:6])
我有从 TCPSocket 获得的 UInt8 数据数组。
我想从不同的索引读取 UInt32s 和 UInt16s。
例如:
data = UInt8[0xFF, 0x00, 0x00, 0x00, 0xAA, 0x00]
// Something like this:
extracted_UInt32 = data.readUInt32(1) # [1-4]
extracted_UInt16 = data.readUInt16(5) # [5-6]
完全像 Node.js 的 Buffer.readUInt16LE(offset)
:https://nodejs.org/api/buffer.html#buffer_buf_readint16le_offset
谢谢!
您可以read
缓冲区中给定类型的数据:
julia> data = IOBuffer(UInt8[0xFF, 0x00, 0x00, 0x00, 0xAA, 0x00]);
julia> a = read(data, UInt32)
0x000000ff
julia> b = read(data, UInt16)
0x00aa
您可以直接从 TCP 套接字执行此操作,而无需具体化为字节向量。
我还发现 reinterpret 可以使用:
data = UInt8[0xFF, 0x00, 0x00, 0x00, 0xAA, 0x00]
a = reinterpret(UInt32, data[1:4])
b = reinterpret(UInt16, data[5:6])