如何在Go中将uint16转换为2字节的字符串?

Xev*_*ous 2 string int type-conversion go

我正在处理一些遗留数据,我经常需要将uint16转换为2字节字符串.

这是我正在使用的(我是一个uint16):

string([]byte {byte(i >> 8), byte(i & 0xFF)})
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/423CAL-SJv

这看起来相当笨重.是否有现有的库函数来执行此操作?我已经查看了字符串和二进制包,但似乎没有任何东西显而易见.

Jim*_*imB 5

虽然这对于您正在尝试的内容完全正常,但该encoding/binary包具有更多用于读取和写入二进制值的功能.

您可以使用

i := uint16(0x474F)

b := make([]byte, 2)
binary.BigEndian.PutUint16(b, i)
fmt.Println(string(b))
// GO
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/IdDnnOtS2V