在Javascript中是否有“0b”或类似的东西来表示二进制数

2022-08-30 01:44:53

我知道这是Javascript中十六进制数字的前缀。例如,代表数字 255。0x0xFF

二进制数有类似的东西吗?我希望代表数字,但这对我不起作用。0b111115


答案 1

更新:

较新版本的 JavaScript(特别是 ECMAScript 6)添加了对二进制(前缀)、八进制(前缀)和十六进制(前缀:)数字文字的支持:0b0o0x

var bin = 0b1111;    // bin will be set to 15
var oct = 0o17;      // oct will be set to 15
var oxx = 017;       // oxx will be set to 15
var hex = 0xF;       // hex will be set to 15
// note: bB oO xX are all valid

此功能已在 Firefox 和 Chrome 中使用。它目前在IE中不受支持,但显然会在Spartan到达时支持。

(感谢分号的评论和uris的答案指出了这一点。

原始答案:

不,二进制数没有等效项。JavaScript 仅支持十进制(无前缀)、十六进制(前缀)和八进制(前缀)格式的数字文字。0x0

一种可能的替代方法是将二进制字符串与基数一起传递给该方法:parseInt

var foo = parseInt('1111', 2);    // foo will be set to 15

答案 2

在ECMASCript 6中,这将作为语言的一部分得到支持,即 是真的。您也可以使用大写的 B(例如 )。0b1111 === 150B1111

ES6 规范中查找。NumericLiterals