十六进制是什么?
说到进制,大部分没有数学基础的小伙伴会比较陌生,如果您是计算机爱好者,也会对二进制耳熟能详。
如果想了解16进制,还需要从我们最常用的10进制说起。
10进制的意思,通俗来说就是数数到10就要向前进一位。比如9完了之后是10,11.....
如果这样看您还是不知所云,请看下面讲解。
假如我们使用一个计数器计数,这个计数器只显示两位数,显示在屏幕上是00
从1开始,01,02,03,04,05,06,07,08,09,10
大家看明白没,个位数到9之后,个位变0,向前十位进1,之后就是10!这就是10进制!
16进制的规律和10进制大同小异。
不同的是,16进制到16才进1.
假如我们有一个神奇的计数器,它的个位和下一个进位的数字显示在()()两个括号中。
比如我们表示1的话就是(00)(01).
2至15到16就是(00)(02)......(00)(15),(01)(00)
那17怎么表示?如下
(01)(01)
大家明白了吗?第一个括号中的1就是16,就好像10进制中,10中的1是10一样的道理。
但是我们没有这样的计数器,我们显示数字都是这样显示,不会使用()来代表个位、十位、百位......的概念。
因此,数学家为了方便显示,对16进制9以后的数字约定好使用英文字母表示。
这样就变成了1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
是不是很聪明!
10就是a
11就是b
以此类推
15就是f
下面请大家做两个思考题。
16进制下,10是10进制中的几呢?
答案是16
那ff是10进制中的几呢?
这就需要算一下了。
16进制转10进制的计算过程如下:
f=15
ff=15乘以16加上15
答案是
那为什么使用16进制来表示颜色呢?因为16进制使用ff两个字母就能正好表示!其他进制做不到这么简约!
因为这个数字对屏幕显示颜色来说具有特殊的意义。
颜色如何表示
我是87年出生的,小时候流行一首叫做《七色光》的歌。
后来大概是初中的时候,学习毛主席诗句时读到了赤橙黄绿蓝靛紫,谁持彩练当空舞的诗句,这是描写彩虹的诗句。
初中物理课上,学到光可以被棱镜分解出不同的颜色。
由此可知,光与色彩有着密不可分的关系。
颜色的种类是通过光波频率来区分的,这些频率之间是平滑过渡的,理论上,如果我们区分不同频率的尺度足够小,我们可以分解出无穷多的颜色。
那么问题就来了,我们确定多少种颜色合适呢?
实际上,眼睛能分辨出的颜色是有限的,人眼一共约能区分一千万种颜色,不过这只是一个估计,因为每个人眼的构造不同,每个人看到的颜色也少许不同(维基百科),只要常用的颜色种类比我们能分辨的种类多一些就可以了,这样,人工制作的图片在我们看起来也不会觉得和观看自然界景观有什么区别。
我们有了颜色种类大概的上限之后,如何让显示器来显示上万种颜色就又变成了难题。
但是科学家智慧还是超乎想象的,人们还是找到了使用3种颜色,通过改变叠加权重来模拟所有可见颜色的方法。
这三种颜色就是红(red)、绿(green)、蓝(blue)!简称RGB!又叫三原色。
它们的叠加变化规律是这样的:(rgb被称为光色模型或者加色模型,与之相对的是印刷色模型或减色模型比如CMY或CMYK,这里不解释了,感兴趣的小伙伴可以自行百度)
我们先在大脑中想象这样一个场景:
漆黑一片的屋子里有三盏投影灯,分别是红色、绿色和蓝色。
如果一盏灯也不开,那么看到的就是黑色。
如果三盏灯全开,把红、绿、蓝叠在一起就是白色。
红和绿叠加是黄色
红和蓝叠加是紫色
绿和蓝叠加是青色
那么如何显示橙色呢?简单说,就是在黄色的基础上,把红灯贡献的红色的比例增高就可以了。
如图:
所以,为了标准化显示,科学家使用一个三维向量来表示颜色。
黑色就是(0,0,0)。括号里的三个数值分别指R、G、B即红绿蓝。
理论上,这个三维向量可以显示所有颜色。
但是我们前面说过,只要显示比人眼能识别的颜色多一些就可以了,那我们就要给三个数值找一个上限。
这既要提到我们在16进制讲解的结尾说的这个数了。
没错!这个数值就是原色的上限数值。
(,,)就是白色!也就是从黑到白,三盏投影灯的数值达从0到就可以。
算上0,从黑到白一共有个数值,即个色阶。
=2的8次方,所以这样的彩色图像我们又称为8位彩色图像。这里的位数也称为色彩深度。
那么RGB能够表示多少种颜色呢?
即乘以乘以种,也可以表述为2的24次方中颜色。也就是,也就是一千六百七十多万种,超过大部分人可识别的颜色种类。因此屏幕上的彩色图片看起来还是非常细腻的。
怎么样?是不是很神奇!
最后,我们说一下页面制作中的rgb的写法。
首先要在数值前面加一个#
然后输入数值。数值一共有6个,其中从左到右,两个一组,分别是红(R)绿(G)蓝(B)。
写一个黑色就是#
白色就是#ffffff
红色#ff
绿色#00ff00
蓝色#ff
黄色#ffff00
青色#00ffff
紫色#ff00ff
是不是很简单?
但是我们在写网页时,使用的很多颜色数值非常复杂,不会像我给的例子这么简单。
大家不必担心,html教程结束后,在学习CSS时,我会为大家引入一个新的编程工具叫做Atom,通过这个工具我们可以使用它的插件color-picker在调色板上直观的选择颜色。
HTML官方说明与参考手册:
HTML使用入门教程: