JavaScript的Number类型无进制格式,内存中统一为IEEE 754双精度浮点数;所谓二进制、十六进制仅为源码字面量或字符串转换时的表示方式,非内在属性。

下面分三类讲清楚实际怎么用:
一、源码中直接写不同进制的字面量(仅用于初始化)
这是最直观的写法,JS 引擎会在解析阶段立刻转成十进制数值,后续运算完全无感知:
-
二进制:以
0b或0B开头,只支持整数,如0b1010→ 十进制10 -
八进制:以
0o或0O开头(ES6 正式写法),如0o755→493;旧式0123已废弃,严格模式下报错 -
十六进制:以
0x或0X开头,字母不区分大小写,如0xFF→255,0xaef→2799 - 负数要写成
-0b101,不能写0b-101(语法错误)
二、字符串 ↔ 数字的进制转换(运行时常用)
用户输入、API 返回或配置项常是字符串,必须显式转换才能参与计算:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
-
字符串转数字:用
parseInt(str, radix),radix必须明确指定(如2、8、16)
✅parseInt("1101", 2)→13;parseInt("ff", 16)→255
❌parseInt("08")在老环境会被当八进制(结果为0),应写成parseInt("08", 10) -
数字转字符串:调用
.toString(radix),支持 2–36 进制
✅(25).toString(2)→"11001";(255).toString(16)→"ff"
⚠️ 负数会带负号:(-10).toString(2)→"-1010",不是补码
三、位运算:真正按二进制位操作(底层逻辑)
位运算符(&、|、^、<<、>>、>>>)会把操作数临时转为 32 位有符号整数再计算:
立即学习“Java免费学习笔记(深入)”;
- 小数部分被截断:
3.7 | 0→3 -
>>是算术右移(保留符号位),>>>是无符号右移(高位补 0) - 常用技巧:
提取第 n 位:(num >> n) & 1
设置第 n 位:num | (1 << n)
清除第 n 位:num & ~(1 << n)
需要处理超大整数(如 > 2⁵³)时,Number 会丢失精度,此时应改用 BigInt(如 0b1010n、parseInt("...", 2)n)。

















