2012年4月18日 星期三

JavaScript 進位轉換方式

剛好朋友問起
在JS裡怎麼讓 原本為2進位的字串變成16進位呢?


這裡紀錄一下小小的教學


JS提供了很方便的工具可以讓我們將傳統的數值轉為各種進位的字串


例如:
var origin = 100;
var result = origin.toString(2);
這時候 origin 還是10進位的數值型態
要將他轉為2進位則利用toString並傳入需要的進位方式


但是如果要將2進位轉為16進位呢?


由於JS沒有辦法直接將2進位變成16進位


所以我們需要轉個方向
將2進位先轉回10進位就好啦! :p


好在JS也提供了轉回10進位的方式
parseInt()
parseInt除了將傳入的字串解析成數值以外
也可以加入進位的參數唷


例如:
parseInt( '1100',  2 );

這樣就會將1100當2進位處理
回傳 12這個數值
而不是直接回傳1100唷


所以2進位轉數值及數值轉回2進位都有了
這時候就可以來嘗試2轉16的部份
程式碼非常非常簡單 :)


範例:
var origin '10000110'// 2進位數字
var temp parseInt(origin2)// 先將字串以2進位方式解析為數值
var result temp.toString(16)// 將數值轉為16進位

jsfiddle線上範例


雖然不知道為什麼簡單的東西
打出來又變成長篇大論OTL...