回覆列表
  • 1 # 使用者1928962967820

    長懶看的請看最後一段結論。從計算機的數值表示上講,0x開頭的其實並不是所謂顏色程式碼的表示方法,而是16進位制數的標準寫法。譬如0xA就是十進位制的10。而#開頭的六(或三)位十六進位制數是在設計領域(如CSS以及一些繪圖軟體)中顏色程式碼的表示方法。如果我們只考慮24位顏色的話,電腦中每個畫素的顏色其實就是用3個位元組(24位)的無符號整數來儲存的。所以用0x開頭的“顏色程式碼”,也就是這個十六進位制數表示的數值,其實就是顏色在記憶體(視訊記憶體)中的儲存方式。為什麼不採用我們常見的10進位制數而要採用0x開頭的16進位制數來表示顏色呢?因為在顏色這3個位元組中,大家規定17-24位表示紅色的分量,9-16位表示綠色的分量,1-8位表示藍色的分量,因此一個十進位制數16777215表示的顏色雖然很難給我們一個直觀的感覺,而將它轉換成16進位制數0xFFFFFF我們就可以很輕易的看出前兩位FF表示紅色,中間兩位FF表示綠色,後面兩位FF表示藍色。這個數值表示白色。於是就出現了閣下熟悉的在設計領域我們就使用#開頭的6位十六進位制數來表示顏色的方式,這樣一來,既直觀又可以方便地在記憶體中進行轉換與儲存。所以我們說#開頭的六位十六進位制數僅僅表示顏色,0x開頭的數字表示包括顏色在內的一般數值。於是我們就可以闡述出它們的區別:我們知道,在十進位制中0123和123是相等的兩個數字,所以0x000FFF和0xFFF是相等的兩個數值,也就表示相同的兩個顏色。但是#000FFF和#FFF表示的卻是兩個不同的顏色。在CSS(以及部分繪圖軟體中)#後面跟3個十六進位制數是被允許的,比如#ABC表示的顏色和#AABBCC表示的顏色相同。但是跟1、2、4、5個十六進位制數仍然是非法的顏色程式碼。所以#000FFF表示藍色摻了一點綠,#FFF即#FFFFFF表示白色,#0FFF什麼都不表示,是非法的顏色程式碼。

  • 中秋節和大豐收的關聯?
  • 月經期間可以服用活血化瘀類的藥物?