前兩天工作之中遇到了個小問題,後台希望將色值傳遞的時候以十六位的形式傳遞,但是因為不同瀏覽器之間的差異性,導致傳遞的色值有時是rgb形式的,因此在參考了網上的**之後改了乙個方法用以轉換。
首先是轉換的思路,rgb是以三原色進行表述的,將其中的三個數字分別轉換為兩位16進製制的數字後相拼接,之後在前面加上#便成為了16位的表述方法。
如何提取三原色中的三個數字,方法不止一種,我採用的是以match進行全域性查詢,通過正則獲取連續的數字。
而10進製與16進製制的轉換則是利用了陣列查詢的方式,先將10進製的數字與16相除,將商與餘數分別進行陣列查詢,然後進行拼接。
具體的**如下:
functionrgbtohex(rgb)/g;
var re = rgb.match(regexp);//
利用正規表示式去掉多餘的部分,將rgb中的數字提取
var hexcolor = "#"; var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
for (var i = 0; i < re.length; i++) hexar.push(hex[c]);
if(l < 16&&l != "")
hexcolor += hexar.reverse().join('');
} //
alert(hexcolor)
return
hexcolor;
}
**並不複雜,希望能夠給新手一點幫助,大家共同學習成長~
如何將24位RGB顏色轉換16位RGB顏色
有許多朋友第一次使用16位彩色顯示屏會遇到如何將24位rgb顏色轉換為對應的16位rgb顏色的問題,我們知道24位rgb是分別由8位紅色,8位綠色以及8位藍色組成 rrrrrrrr gggggggg bbbbbbbb 例如 24位rgb紅色表示方法為 11111111 00000000 000000...
MD5 32位和16位互相進行轉換
如下 塊語法遵循標準markdown 例如 16進製制字元轉10進製 inline int hextodec char c else return n 乙個char中有2個16進製制,轉為2個10進製字元 inline void intdectohex unsigned char n,char bu...
利用位運算進行許可權管理
在linux檔案系統中,乙個使用者對檔案或目錄所擁有的許可權分為三種 可讀 可寫 和 可執行 分別用 1 2 和 4 來表示,它們之間可以任意組合 有 可讀 可寫 許可權就用 3 來表示 1 2 3 有 可讀 可執行 許可權就用5來表示 1 4 5 三種許可權全部擁有就用 7 表示 1 2 4 7 ...