JavaScript的進制轉換


先介紹兩個API:

一、number 類型的 toString 方法

語法

numberObject.toString( [ radix ] )

參數

參數 描述
radix 可選/Number類型指定的基數(進制數),默認為10。

參數radix支持 [2, 36] 之間的整數。例如:參數值為2,則表示二進制;為8,則表示八進制;為16,則表示十六進制。
如果省略參數radix,則默認為10(十進制)。

返回值

toString()函數的返回值為String類型,返回該數字指定進制形式的字符串。

 

二、string 轉 number 的方法

語法

parseInt( numString [, radix ] )

參數

參數 描述
numString String類型需要轉換為整數的字符串。
radix 可選/Number類型指定的進制基數。

參數radix可以是一個介於 [2, 36] 之間的數值。例如:參數radix為2,則將numString視作二進制;參數radix為8,則視作八進制;參數radix為16,則視作十六進制。

 如果沒有提供radix參數,則parseInt()函數將會根據參數numString的前綴來決定轉換的進制基數。如果numString的前綴是0x,則轉換為十六進制;如果前綴是0,則轉換為八進制;其他情況均轉換為十進制。

返回值

parseInt()函數的返回值為Number類型,返回轉換后的整數。

如果指定的字符串中包含非數字字符,只要字符串開頭的一部分符合整數的轉換規則,則parseInt()函數會將這一部分字符串轉化為整數(從字符串開頭,直到遇到非數字字符為止)。如果字符串以非數字字符開頭,則返回NaN

 

上代碼!

數字轉2進制

(100).toString(2)         // "1100100"

數字轉8進制

(100).toString(8)         // "144"

數字轉16進制

(100).toString(16)         // "64"

16進制轉10進制

parseInt(0x64)            //  100 
parseInt('0x64')          //  100
parseInt('0x64',16)       //  100    第二參數寫了更好,以免迷糊
​
parseInt('ff')            //  NaN
parseInt('ff',16)         //  255   這里沒有0x打頭,必須要注明要轉的基數

8進制轉10進制

parseInt(0100);           //  64    先轉成字符串,再以8進制解析
parseInt("0100",8);       //  64    正確寫法,無歧義  !!!
​
parseInt("0100");         //  100   官方表示不確定:但是測試結果,谷歌瀏覽器當成10進制輸入。所以不建議這樣寫

2進制轉10進制

parseInt("11",2);        //返回 3 

 

補充

ES6支持二進制和八進制的字面量

  1、在數字前面添加 0o 或者 0O 即可將其轉換為八進制

  2、在數字前面添加 0b 或者 0B 即可將其轉換為二進制

let oValue = 0o10;
console.log(oValue);      //8

let bValue = 0b10;
console.log(bValue);      //2

 

Thanks for watching !


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM