2015年1月28日 星期三

簡單的演算法-16進位法

16進位法,簡而概之就是每16個數進位一次

對應表如下:

0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15
0  1  2  3  4  5  6  7  8  9   a    b   c    d    e    f

16進位小常識

16進位法有很多種不同的使用方式
如ACII等等

但在網頁設計中最常使用的部分
就是表現顏色了


一個位元組(byte)=8 位元(bit)

如果在二進位中
要表達RGB
我們必須使用3個byte,也就是24bit來充分表現出RGB全部色彩

如我們要做出白色
color:RGB(255*255*255)

但在16進位來表示呢?
color:(#ffffff)
(#代表後面為16進位)

驗算:
#ff=16^1*15+16^0*15=240+15=255

2進位:  _ _ _ _ _ _ _ _ , _ _ _ _ _ _ _ _ ,  _ _ _ _ _ _ _ _
16進位:_____  _____  , _____  _____  ,  _____  _____

上圖在二進位中,每個空位中能填入0與1
而在16進位中,每個空位可填入0~f
2^4=16 ,意味著對於2進位法,16進位法更有效率的表達出相同的的值
對於人類來說也較為直覺(不需要看著一大堆01換算十進位,可以更快表示資料)
雖然說與2進位相比,16進位簡潔許多
但在電腦中
16進位基本上還是需要佔用3個byte


在css中,
如果使用16位元表示顏色時

所以#000000代表並未輸出任何色彩->黑
#ffffff代表Red、Green、Blue皆輸出至最高級->白

那如果要作灰階呢?
#000000 ->white
#111111->1/16black+15/16white
...
...
...
#eeeeee->15/16white+1/16black
#ffffff->black

沒有留言:

張貼留言