猿问

将字节数组的一部分转换为 uint16 的最简单方法

如果我字节数组:


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)

但是我一直没有得到任何东西,而且这相对复杂,有没有更简单的方法呢?


慕斯709654
浏览 414回答 1
1回答

精慕HU

您有 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
随时随地看视频慕课网APP

相关分类

Go
我要回答