为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕斯709654 2021-08-10 16:43:59
如果我字节数组: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


查看完整回答
反对 回复 2021-08-10
  • 1 回答
  • 0 关注
  • 413 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信