13

Go 语言中的十六进制数字 — blog.huangz.me

 4 years ago
source link: https://blog.huangz.me/2020/hexadecimal-in-go.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Go 语言中的十六进制数字

层叠样式表(CSS)通过十六进制数字而不是十进制数字来指定颜色。 与十进制只使用 10 个数字相比, 十六进制需要多用 6 个数字: 其中前 10 个数字跟十进制一样, 都是 0~9, 但是之后的 6 个 数字是十六进制数字 A ~ F 。 十六进制中的 A 相当于十进制中的 10B 相当于 11 , 以此类推, 直到相当于 15F 为止。

十进制对拥有十根手指的人类来说是一种非常棒的数字系统, 但与之相比, 十六进制更适合计算机。 这是因为一个十六进制数字需要消耗 4 个二进制位, 也就是半字节(nibble), 而 2 个十六进制数字则正好需要消耗 8 个二进制位, 也就是 1 字节, 这也使得十六进制可以非常方便地为 uint8 设置值。

下表展示了一些十六进制数字以及与之对应的十进制数字。


../_images/hex.png

为了区分十进制数字和十六进制数字, Go 语言要求十六进制数字必须带有 0x 前缀。 作为例子, 以下两行代码分别用十进制数字和十六进制数字定义了完全相同的 3 个变量:

var red, green, blue uint8 = 0, 141, 213
var red, green, blue uint8 = 0x00, 0x8d, 0xd5

在使用 Printf 函数打印十六进制数字的时候, 你可以使用 %x 或者 %X 作为格式化变量:

fmt.Printf("%x %x %x", red, green, blue)    // 打印出 “08dd5”

为了输出能够完美适配层叠样式表文件的颜色的数字, 我们需要用到格式化变量 %02x 。 它跟之前介绍过的格式化变量 %v%f 一样, 通过数字 2 指定了格式化输出的最小数字数量, 并通过数字 0 启用了格式化的零填充功能:

fmt.Printf("color: #%02x%02x%02x;", red, green, blue)    // 打印出 “color: #008dd5; ”

本文摘录自《Go语言趣学指南》第 7 章, 请访问 gpwgcn.com 以获取更多相关信息。

../_images/gpwgcn1.jpg

Recommend

  • 28
    • blog.huangz.me 4 years ago
    • Cache

    Go 语言中的十六进制数字

    层叠样式表(CSS)通过十六进制数字而不是十进制数字来指定颜色。 与十进制只使用 10 个数字相比, 十六进制需要多用 6 个数字: 其中前 10 个数字跟十进制一样, 都是 0 ~ 9 , 但是...

  • 9

    在 Go 语言中定义新类型¶ Go 声明了许多类型, 我们在第 2 单元已经看到过其中的相当一部分, 但是这些类型有时候并不能充分地描述我们想要持有的值。 声明新类型不仅能够让...

  • 12

    在 Go 语言中定义函数¶ 到目前为止, 本书中的代码都放在了 main 函数里面, 但是在处理诸如环境监测程序等更为大型的程序时, 把问题拆分成更小的部分将会非...

  • 15

    Go 语言中的字符、代码点、符文和字节¶ 统一码联盟(Unicode Consortium)把名为代码点的一系列数值赋值给了上百万个独一无二的字符。 例如, 大写字母 A 的代码点为

  • 16

    Go 语言中的字符串¶ 我们从最初的 "Hello, playground" 开始就已经在程序里使用文本了。 在 Go 程序中, 独立的字母、数字和符号被统称为字符, 而通过拼接多个字符并使...

  • 8

    Go 语言中的整数回绕现象¶ 整数类型虽然不会像浮点类型那样因为舍入错误而导致不精确, 但整数类型也有它们自己的问题, 那就是有限的取值范围。 在 Go 语言中, 当超...

  • 8
    • blog.huangz.me 4 years ago
    • Cache

    Go 语言中的整数 — blog.huangz.me

    Go 语言中的整数¶ 本文摘录自《Go语言趣学指南》第 7 章, 请访问 gpwgcn.com 以获取更多相关信息。

  • 13

    Go 语言中的浮点数¶ 本文摘录自《Go语言趣学指南》第 6 章, 请访问 gpwgcn.com 以获取更多相关信息。

  • 6

    Go 语言中的变量作用域范围¶ 本文摘录自《Go语言趣学指南》第 4 章, 请访问 gpwgcn.com 以获取更多相关信息。

  • 11

    在C语言中,为什么十六进制的数字前缀用 0x 呢? 发表于 2019-08-26 08:08:5...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK