2023年5月29日 星期一

關於 JavaScript 的進制轉換

 關於 JavaScript 的進制轉換

前言

  在先前的 關於 BigInt 轉換非十進制的作法 裡做了 BigInt 的進制轉換的介紹,這次來學習更多的進制轉換,在此把學習的過程做個紀錄。


內容

  範例如下

let num = 42;
let hexNum = num.toString( 16 );
//
console.log( hexNum );//2a
//Hex int to int
console.log( parseInt( hexNum , 16 ) );//42
//Hex int to BigInt
console.log(  BigInt( "0x"+hexNum ).toString() );//42
//Binary to BigInt
console.log(  BigInt( "0b"+"11111111111111111111111111111111111111111111111111111" ).toString() );
//"9007199254740991"

//Octal to BigInt
console.log(  BigInt( "0o"+"71" ).toString() );//"57"


範例開頭示範的是把 Number 轉換進制,是透過 Number.toString() 來達成,透過參數可以決定要轉換的進制,如果要把它轉換回原來的 Number ,可以透過 parseInt() 來達成,第二個參數就是要轉換的進制,如果要把非十進制的 Number 轉到 BigInt 呢?可以透過 BigInt 的建構式來達成,在建構式輸入進制的字串就可以轉換,二進制的前方是 "0b" ,八進制的前方是 "0o" ,十六進制的前方是 "0x",那如果碰到非二進制 ,也非八進制與十六進制呢?這些情況就要透過 parseInt() 先變回十進制再轉 BigInt 。


參考資料

[ tech.havocfuture.tw ] 如何使用 javascript 進行十進位、十六進位轉換

[ developer.mozilla.org ] BigInt


相關文章與資料

關於 BigInt 轉換非十進制的作法

沒有留言:

張貼留言