【问题标题】:Total number of possible color combinations可能的颜色组合总数
【发布时间】:2014-03-09 17:42:03
【问题描述】:

我计算出有 16,777,216 种可能的十六进制颜色代码组合。

单个十六进制字符最多可以有 16 个字符,一个十六进制颜色代码最多可以包含 6 个字符,这让我得出了 16^6 的结论。

这是正确的吗?如果没有,请告诉我有多少种可能的颜色组合以及如何计算出来。

【问题讨论】:

  • 应该是 16^6。略有不同...

标签: html colors


【解决方案1】:

有 16,777,216 种颜色使用 #RRGGBB 表示法。

每个颜色通道使用 1 个字节的信息进行描述。字节可以包含 256 个不同的值。所以对于 3 个频道,它是:

256^3 = 16,777,216 = 16M

但是,现代浏览器支持透明度 - #AARRGGBB,通过类似的逻辑你会得到:

256^4 = 4,294,967,296 = 4G

【讨论】:

  • 虽然透明度字节添加了新的颜色代码,但使用透明度的结果不会产生无法显示的额外颜色与#RRGGBB。例如#88000000 也可以显示为#888888。因此,就颜色而言,16M 色答案仍然是唯一准确的答案。但是,如果 OP 严格想知道 hex combinations,则 256^4 是相关的。
【解决方案2】:

是的,我做了一个简单的节点程序返回所有可能的十六进制代码的数组,这里是代码

function getColors(){
    var hexCode = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E' ,'F'];
    var arr = [];
    for (var i = 0; i < hexCode.length; i++) {
        console.log(`i done it ${i+1} times`);
        for (var y = 0; y < hexCode.length; y++) {
            for (var x = 0; x < hexCode.length; x++) {
                for (var a = 0; a < hexCode.length; a++) {
                    for (var b = 0; b < hexCode.length; b++) {
                        for (var c = 0; c < hexCode.length; c++) {  
                            arr.push(`#${hexCode[i]}${hexCode[y]}${hexCode[x]}${hexCode[a]}${hexCode[b]}${hexCode[c]}\n`);  
                        }
                    }
                }
            }
        }
    }
    return arr;
}
var colors = getColors();
console.log(colors.length);

但是,当我运行它时,它会记录到控制台:16 777 216

【讨论】:

    【解决方案3】:

    rgba() 颜色系统中目前有 184,549,376 个可能的颜色组合,即
    R:0 到 255(256 个值)×
    G:0 到 255(256 个值)×
    B:0 到 255(256 个值)×
    A:0.0 到 1.0(11 个值)

    【讨论】:

    • A:0 到 255 也是如此。 Alpha 值的范围是 0 到 255,0 表示完全透明,255 表示完全不透明。
    【解决方案4】:

    有两种写颜色的方法。 RGB (rgb(R,G,B)),红色、绿色和蓝色的范围为 0-255。第二种方式是十六进制(#RRGGBB)。

    十六进制共有 6 位数字,每种颜色 2 位数字。十六进制的最大两位数为FF,以10为底为255。

    如果你考虑一下。 RGB 和 HEX 的相似之处在于允许您输入 3 个数字作为红色、绿色和蓝色值。每个数字的最大值为255。

    以 10 为底的 6 个十六进制数字的最大值为 16,777,215。如果您还添加 #000000,您将获得 16,777,216 作为可能颜色组合的总数。

    如果我们使用 RGB,颜色范围是 0-255。这意味着每个红色、绿色和蓝色都有 256 个可能的值。 256^3 是 16,777,216。

    因此,您的问题的答案是 16,777,216。不管你怎么算。

    【讨论】:

      【解决方案5】:

      好吧,我认为它是 16777216,因为我的十六进制转换器说 ffffff 是 16777215。ffffff 是最高的十六进制颜色代码,所以这将是 16777215。但是,也有 000000,这使得答案为 16777216,因为它不包括 000000。 谁输入了 16777216,你是对的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-18
        • 2015-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多