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

5

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

这是我使用的代码(其中i是一个uint16):

string([]byte {byte(i >> 8), byte(i & 0xFF)})

这似乎有点笨重。是否有现有的库函数可以完成此操作?我已经查看了strings和binary包,但没有什么显而易见的东西。

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

2个回答

9

虽然这种方式对于你想要做的事情来说是完全可以的,但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


谢谢您。我已经阅读了编码/二进制页面,但是变量长度整数在名称中让我感到困惑。 - Xevious

-4

请尝试以下操作

t := strconv.Itoa(123)

1
@Xevious,抱歉我回复得很快,我误解了问题。请原谅。 - Tushar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接