0

我的 Arduino 板上连接了一系列 RGB LED 灯,我正在尝试更改 LED 的值,唯一的问题是我似乎在 HEX 到 RGB 转换器上找不到任何东西。

此外,RGB 值与您得到的常规值不同,例如 (255,255,255) = 白色。它们似乎采用某种类型的字节格式(0x0ff)?我一点也不熟悉。

有人能指出我如何将像 '9cb261' 这样的十六进制颜色转换为 RGB 字节值的正确方向吗?

谢谢

4

1 回答 1

4

十六进制只是写入相同数字的一种速记方式,如果您关心哪些位已设置,哪些未设置,则其格式更易于阅读。

数字“255”告诉您有 2 个“100s”、5 个“10s”和 5 个“1s”。换句话说,它是 2 个“10^2”、5 个“10^1”和 5 个“10^0”。

十六进制是相同的想法,但我们使用 16 代替 10。由于每个地方可能有超过 10 个东西,我们在 0-9 之后添加字符 a - f。

使用一个简短的示例,“9c”表示“16^1”的 9 个实例加上“16^0”的 c (12) 个实例。这产生 144 + 12 或 156。

“0x”前缀只是告诉您以下字符串将被解释为十六进制字符串。

为了分解您的示例,十六进制颜色 9cb261 只有 3 个字节(9c、b2、61)。如果我们将字节转换回十进制,则为 (9*16+12, 11*16+2, 6*16+1) 或 (156, 178, 97)

Wikipedia 的 Hexadecimal 文章中有完整的文章。

于 2013-04-17T21:05:03.663 回答