You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中能否使用二进制或八进制?如何像十六进制那样使用?

JavaScript里的二进制与八进制使用技巧

当然可以啦!在JavaScript里,你完全能像用十六进制\x61那样,用八进制来处理字符串;二进制的话虽然没有直接的转义序列,但也有简单的实现方式,刚好匹配你的需求,下面详细说:

1. 八进制转义字符:直接用,和十六进制逻辑一致

和你给出的十六进制例子类似,JavaScript支持八进制转义序列,写法是在反斜杠\后面跟1-3位0-7的数字。比如字符'a'的ASCII码是97,转成八进制是141,所以代码可以这么写:

var ab = ["\141"];
document.write(ab[0]); // 运行后会输出:a

这里提两个小注意点:

  • 严格模式下,数字字面量的传统八进制写法(比如var num = 0141)会报错,但字符串里的\141这种转义是完全没问题的,所有JS版本都支持。
  • 八进制转义最多支持3位数字,超过的话只会解析前3位;不足3位则按实际位数处理。

2. 二进制的实现方式:两种简单方法

JavaScript没有像八进制、十六进制那样的直接二进制转义字符(比如\bxx这种格式),但有两种很方便的方式实现类似效果:

方法一:用String.fromCharCode()+二进制字面量

ES6之后支持二进制数字字面量(以0b开头),你可以先写出字符对应的ASCII码二进制值,再用String.fromCharCode()转成字符。还是以'a'为例,它的二进制是1100001,代码如下:

var ab = [String.fromCharCode(0b1100001)];
document.write(ab[0]); // 同样输出:a

方法二:转成十六进制用Unicode转义(可选)

如果你执着于用转义字符的形式,也可以把二进制先转成十六进制,再用\u{...}的Unicode转义写法(里面放十六进制码点)。比如1100001转成十六进制是61,那代码就是["\u{61}"],不过这个其实和你原来的十六进制例子本质一样,不如第一种方法直接。

额外唠一句:数字的八进制与二进制写法

如果你是想定义数字类型的八进制或二进制值(不是字符串),ES6也有规范的写法:

  • 八进制数字:0o开头,比如var num = 0o141;(等于十进制的97)
  • 二进制数字:0b开头,比如var num = 0b1100001;(同样等于97)
    这种写法在严格模式下也是合法的,不用担心报错。

内容的提问来源于stack exchange,提问作者Rabib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:19:45