我正在处理CSS颜色和十六进制编码。白色以CSS RGB表示法表示为十六进制#FFFFFF,或Javascript中的0xFFFFFF。
如果我理解正确,十六进制数中的每个位置都会从0到16.因此,一系列的六个Fs等于16 * 16 * 16 * 16 * 16 * 16,或16到6的幂:Math .pow(16,6)。此操作的结果是16777216。
我们还可以将十六进制值解析为基数10:parseInt(0xFFFFFF,10)。此操作的结果是16777215。
为什么两个操作之间的差异为1?
答案 0 :(得分:1)
让我们从查看十进制数开始。
999999 10 不等于10 6 。
999999 10 小于10 6 。
999999 <子> 10 子> = 9×10 5 + 9×10 4 + 9×10 3 + 9×10 2 + 9×10 1 + 9×10 0
6位数可用于表示10个 6 不同的数字:0到999999 10 。
相同的十六进制。
FFFFFF 16 不等于16 6 。
FFFFFF 16 小于16 6 。
FFFFFF <子> 16 子> = 15×16 5 + 15×16 4 + 15×16 3 + 15×16 2 + 15×16 1 + 15×16 0
6个十六进制数字可用于表示16个 6 不同的数字:0到FFFFFF 16 。
答案 1 :(得分:0)
在十六进制中,F = 15,而不是16,将F相邻地放置n次将导致16 ^ n - 1类似于相邻地放置9&n,将导致10 ^ n -1。
这就是为什么会有区别的原因。