如何将 RGB 转换为十六进制
- 通过滑块或数字输入框设置红、绿、蓝三个值(0–255),或粘贴 CSS
rgb()值。 - 十六进制代码会立即显示,同时给出 HSL、HSV 和 CMYK 值。将 alpha 设为小于 1 的值,即可得到带透明度的 8 位十六进制代码。
- 复制十六进制代码,或查看公式,了解每个值是如何换算的。
RGB 转十六进制公式
取值 0 到 255 的每个 RGB 通道,都恰好对应两位十六进制数字。把数值除以 16:商是第一位,余数是第二位,其中 10–15 写作 A–F。以 rgb(124, 58, 237) 为例:
- 红色:124 ÷ 16 = 7 余 12 →
7C - 绿色:58 ÷ 16 = 3 余 10 →
3A - 蓝色:237 ÷ 16 = 14 余 13 →
ED
在 # 后依次连起来,就得到 #7C3AED。每个通道必须写成两位:9 要写成 09,而不是 9。
用代码实现 RGB 转十六进制
- JavaScript:
'#' + [r, g, b].map((v) => v.toString(16).padStart(2, '0')).join('') - Python:
'#{:02X}{:02X}{:02X}'.format(r, g, b) - Excel 和 Google 表格:
="#"&DEC2HEX(R,2)&DEC2HEX(G,2)&DEC2HEX(B,2) - CSS:无需转换,
rgb()和十六进制代码可以互换使用。
添加透明度(alpha)
要得到 8 位代码,把不透明度(0–1)乘以 255,四舍五入后转换为两位十六进制数字,追加到末尾:0.5 × 255 = 127.5 → 128 → 80,所以 rgba(124, 58, 237, 0.5) = #7C3AED80。
| 不透明度 | 十六进制 | 不透明度 | 十六进制 |
|---|---|---|---|
| 100% | FF | 50% | 80 |
| 90% | E6 | 40% | 66 |
| 80% | CC | 30% | 4D |
| 75% | BF | 25% | 40 |
| 70% | B3 | 20% | 33 |
| 60% | 99 | 10% | 1A |
常见问题
RGB 转十六进制的公式是什么?
对于每个通道,第一位十六进制数字是数值除以 16 的商(取整数),第二位是余数,其中 10–15 写作 A–F。最后在 # 后依次连接三组数字:rgb(255, 165, 0) → FF、A5、00 → #FFA500。
为什么每个通道都必须是两位十六进制数字?
十六进制颜色代码是按固定的两位一组来读取的。rgb(0, 128, 9) 必须写成 #008009;如果省略前导零,各组就会错位,得到另一种颜色或无效代码。
十六进制颜色代码可以包含透明度吗?
可以。现代浏览器支持 8 位代码 #RRGGBBAA,最后两位是 alpha 值,从 00(完全透明)到 FF(完全不透明)。例如 rgba(124, 58, 237, 0.5) 对应 #7C3AED80。
RGB 转十六进制是精确的吗?
对于整数 RGB 值来说是精确的:0 到 255 之间的每个数都只有唯一的两位十六进制形式,因此转换回去会得到相同的数值。只有 alpha 会被舍入到 256 个等级中最接近的一级。