小编典典

将字节数组的一部分隐蔽到uint16的最简单方法

go

如果我字节数组:

byte_array := []byte("klm,\x15\xf1\n")

我想以LittleEndian顺序将字节\ x15和\ xf1传递给uint16。最简单的方法是什么?

尝试了以下内容:

var new_uint uint16
bff := bytes.newRead(byte_array[4:5])
err = binary.Read(buff, binary.LittleEndian, &new_uint)

但是我什么也没得到,而且这相对复杂,有没有更简单的方法?

谢谢…


阅读 303

收藏
2020-07-02

共1个答案

小编典典

您有2个选择,使用binary.LittleEndian就像您已经做的那样,一种较短的方法是:

u16 := binary.LittleEndian.Uint16(byte_array[4:])

或者,如果您想过着危险的生活,则可以使用不安全的方法:

// 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

2020-07-02