淺談js的數字格式


除了正常我們常用的十進制(如5,8,12.123等),js還可以直接表示2、8、16進制

1.二進制

二進制是以0b開頭

0b10; //2

2.八進制

八進制是以0開頭

010; //8

3.十六進制

十六進制是以0x開頭

0x10; //16

可以看出js雖然是支持2、8、16進制,但是它最后得出結果的時候仍然把數字轉為10進制,如果我們需要結果是2、8、16進制形式的話我們有一個方法:

toString(radix) 把10進制數字解析成幾進制

var x = 255;
x.toString('16'); //"ff"

4.解析成其他進制

上面都是10進制到其他進制的轉化(實際大小不會變化),但如果想把數字解析為其他進制(把數字看成不同進制,實際大小會變化),如想把12解析成4進制,可以寫成parseInt(12,4) ; //6 = 1*4+2

parseInt

parseInt(num,radix) 其中36>radix>2,radix是用幾進制來解析這個數字(parseFloat沒有這個功能)

//80用16進制來解析當然就是128了
parseInt(80,16); //128 = 8*16

//改變解析進制數,只能選比該數字所有位都大的數
//如80,只能選9以上,不然會解析不了而返回NaN
parseInt(80,8); //NaN

//注意大於10進制的進制數一定要用字符串來表示,不然會報錯
//如果用0x15這樣形式,js會先將其轉化為21,最后結果就不會是預期的結果了
parseInt('ag',18); //196 = 10*18+16

 


免責聲明!

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



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