如果我字节数组:byte_array := []byte("klm,\x15\xf1\n")我想以 LittleEndian 顺序将字节 \x15 和 \xf1 转换为 uint16。最简单的方法是什么?尝试了以下方法:var new_uint uint16bff := bytes.newRead(byte_array[4:5])err = binary.Read(buff, binary.LittleEndian, &new_uint)但是我一直没有得到任何东西,而且这相对复杂,有没有更简单的方法呢?
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
您有 2 个选项,像您已经使用的那样使用 binary.LittleEndian,更短的方法是:
u16 := binary.LittleEndian.Uint16(byte_array[4:])
或者,如果你喜欢危险的生活,你可以使用 unsafe:
// This will return the wrong number on a BE system,
// also unsafe is not available on GAE.
u16 := *(*uint16)(unsafe.Pointer(&byte_array[4]))
playground
- 1 回答
- 0 关注
- 413 浏览
添加回答
举报
0/150
提交
取消