【问题标题】:Why do hexadecimal colors have 2 digits per color? [duplicate]为什么十六进制颜色每种颜色有 2 位数字? [复制]
【发布时间】:2023-11-07 07:34:01
【问题描述】:

我了解十六进制系统是建立在 0123456789ABCDEF 上,代表 16 度。 0 是最暗的,直到 F 是该颜色的纯形式。但是为什么每种颜色都有 2 个数字(红绿蓝)?以及这两个数字如何共同形成每个颜色值。

【问题讨论】:

    标签: colors hex


    【解决方案1】:

    这是因为颜色表示为 R-G-B,每个原色都有一个介于 0 和 255 之间的值,这使得 256 成为可能。十六进制是一种写数字的方式,就像二进制或十进制一样,而十六进制需要2位数字(准确地说是FF)来表示256。

    【讨论】:

    • 好的,所以基本上你将两个十六进制值相乘以创建等效的 RGB 值。例如#FFCC2B = 16 * 16 = 256, 13 * 13 = 169, 2 * 11 = 22。那么#FFCC2B = rgb(255, 169, 22) 对吗?
    • 不,你必须将每个十六进制块一个一个地转换,这意味着 FF = 255,CC = 204 和 2B = 43,所以#FFCC2B = (255, 204, 43)。你可以在谷歌上查看一个十六进制转换器,有很多:)
    【解决方案2】:

    00 到 FF 表示,十进制 0-255。 256 个值,这也是您可以在单个字节中表示的唯一值的数量。

    在编程中,颜色通常由 4 个字节组成,每个字节都有一个 00-FF 十六进制值。有红字节、绿字节、蓝字节,还有代表alpha通道的字节。

    然而,有时,三个非 alpha 字节代表色相、饱和度和亮度,而不是 RGB。第四个仍然是 Alpha 通道。

    【讨论】: