JavaScript 二進位制、八進位制與十六進位制

admin發表於2019-12-20

十進位制是在程式設計中是最為常見的,由於常見,所以也最容易被接受。

JavaScript也有表示和處理二進位制、八進位制和十六進位制的能力。

本文僅介紹一下二進位制、八進位制與十六進位制在JavaScript表示方式。

相互轉換可以參閱二進位制、八進位制、十六進位制與十進位制轉換一章節。

一.二進位制:

在ES2015之前,JavaScript並沒有二進位制表示法。

也就是我們沒法像寫十進位制數字一樣,寫一個二進位制數字。

看如下程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
let a=10010;
let b=010010;

宣告兩個變數並賦值,看起來好像二進位制數字,然而並不是。

程式碼分析如下:

(1).10010就是一個普通的十進位制數字。

(2).010010是一個八進位制數字,以0開頭的是八進位制數字。

特別說明:嚴格模式下取消了八進位制字面量表示法,所以010010會報錯。

ES2015新增二進位制表示法,以0b作為數字的起始,b是binary(二進位制)的縮寫。

例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let num=0b111010;
console.log(num.toString());

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201912/18/100307u1zuvfcaqb087plf.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述程式碼將二進位制數字轉換為十進位制。

二.八進位制:

當前有兩種八進位制表示法,分別羅列如下:

(1).以0起始的數字。

(2).以0O起始的數字,O是octal(八進位制)的縮寫。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let num=070;
console.log(num.toString());

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201912/18/100337fc53630s0fcs0000.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

但是並不是所有以0起始的數字都是八進位制,比如091,畢竟八進位制中最大數字是7。

ES5嚴格模式取消了八進位制表示法,所以上述程式碼如果採用嚴格模式,會報錯。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let num=0O70;
console.log(num.toString());

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201912/18/100416xxp6mjnzwqsnpomq.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述是ES2015新增的八進位制表示法。

三.十六進位制:

十六進位制數字以0x作為起始,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let num=0x10;
console.log(num.toString());

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201912/18/100445uc7mtlclptpempba.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述程式碼將十六進位制數字轉換為十進位制。

相關文章