我正在处理一些遗留数据,我经常需要将 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/

10-11 23:59