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

在 Go 中以十六进制打印字符串和字符

在 Go 中以十六进制打印字符串和字符

Go
波斯汪 2022-12-13 16:04:42
为什么十六进制格式的西里尔字符串与十六进制格式的西里尔字符不同?str  := "Э"fmt.Printf("%x\n", str)//result d0ad    str  := 'Э'fmt.Printf("%x\n", str)//result 42d
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

打印 a 的十六进制表示string打印其字节的十六进制表示,打印 a 的十六进制表示打印rune它作为别名的数字的十六进制表示(runeis an alias to int32)。

Go 中的sstring保存文本的UTF-8编码字节序列。在 UTF-8 表示中,数字代码 > 127 的字符(符文)具有多字节表示。

在 UTF-8 中具有rune Э多字节表示(即[208, 173]),它与 32 位整数的多字节表示不同1069 = 0x42d整数在内存中使用二进制补码表示。

推荐博文:Go 中的字符串、字节、符文和字符


查看完整回答
反对 回复 2022-12-13
  • 1 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

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