关于十六进制颜色代码中数字与字母作用及#37136F取值逻辑的疑问
解惑十六进制颜色代码的两位字符计算逻辑
嘿,这个疑惑太正常了——刚接触十六进制颜色的时候,很容易把两位字符的逻辑想错!我来给你讲明白:
首先,十六进制颜色代码#RRGGBB的结构是把RGB三个颜色通道(红、绿、蓝)分别用两位十六进制数表示,每个通道的取值范围是00(十进制0)到FF(十进制255),这才符合RGB颜色的标准范围(每个通道0-255)。
回到你问的#37136F:
- 最后两位
6F是蓝色通道的十六进制值,它的计算方式是位权相加,不是简单的数字拼接或者单个数值相加:- 十六进制里,
6代表十进制的6,它在“16位”上,所以是6 × 16; F代表十进制的15(十六进制中A=10,B=11…F=15),它在“个位”上,所以是15 × 1;- 加起来就是
6×16 +15 = 96+15=111,这才是这个蓝色通道的十进制值。
- 十六进制里,
你之前想的“相加得21”或者“组合成615”都不对:
- 相加的话范围确实只有0-30,完全不符合RGB的需求;
- 直接拼接成十进制数的话范围会到999,也超出了标准RGB的255上限,显然不合理。
总结一下:两位十六进制字符是一个完整的十六进制数,转换十进制时要按十六进制的位权计算,这样每个通道刚好能覆盖0-255的范围,完美适配RGB颜色的亮度层级~
内容的提问来源于stack exchange,提问作者skillz21
相关产品推荐
相关产品推荐

