我正在处理一些遗留数据,我经常需要将 uint16 转换为 2 字节字符串。
这是我正在使用的(其中我是 uint16):
string([]byte {byte(i >> 8), byte(i & 0xFF)})
https://play.golang.org/p/423CAL-SJv
这看起来相当笨重。是否有现有的库函数来执行此操作?我已经查看了字符串和二进制包,但没有什么是显而易见的。
最佳答案
虽然这对于您要执行的操作来说非常好,但 encoding/binary
包具有更多用于读取和写入二进制值的功能。
您可以使用
i := uint16(0x474F)
b := make([]byte, 2)
binary.BigEndian.PutUint16(b, i)
fmt.Println(string(b))
// GO
https://play.golang.org/p/IdDnnOtS2V
关于string - 如何在 Go 中将 uint16 转换为 2 字节字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39876914/