登录
首页 >  Golang >  Go问答

在 Go 中将字符串和字符以十六进制形式输出

来源:stackoverflow

时间:2024-02-19 15:39:21 446浏览 收藏

本篇文章给大家分享《在 Go 中将字符串和字符以十六进制形式输出》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

为什么十六进制格式的西里尔字母字符串与十六进制格式的西里尔字母不同?

str  := "Э"
fmt.Printf("%x\n", str)
//result d0ad
    
str  := 'Э'
fmt.Printf("%x\n", str)
//result 42d

正确答案


打印 string 的十六进制表示形式会打印其字节的十六进制表示形式,打印 rune 的十六进制表示形式会打印其别名数字的十六进制表示形式(runeint32 的别名)。

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

rune Э 在 UTF-8 中具有多字节表示形式(即 [208, 173]),并且它与 32 位整数 1069 = 0x42d 的多字节表示形式不同。整数在内存中使用 two's complement 表示。

推荐博文:Strings, bytes, runes and characters in Go

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>