javascript中number类型无进制属性,进制转换本质是字符串与数字的双向解析:用.tostring(radix)将十进制数转为指定进制字符串,用parseint(str, radix)将带进制前缀的字符串转为十进制数;跨进制转换需经十进制中转。

JavaScript 中 Number 类型本身没有“进制属性”,它始终是十进制数值;所谓进制转换,本质是字符串与数字之间的双向解析与格式化。掌握两个核心方法就能覆盖绝大多数场景:parseInt() 用于字符串转数字,toString() 用于数字转字符串。
十进制数字 → 其他进制字符串
用 .toString(radix) 方法,radix 是目标进制(2、8、16 最常用):
-
(42).toString(2)→"101010"(十进制转二进制) -
(42).toString(8)→"52"(十进制转八进制) -
(255).toString(16)→"ff"(十六进制小写);加.toUpperCase()可得"FF" - 注意:
0.toString(2)是合法的,但10.toString(2)会报错(语法歧义),应写成(10).toString(2)或10..toString(2)
其他进制字符串 → 十进制数字
用 parseInt(str, radix),必须显式指定 radix(不填可能误判):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
parseInt("1010", 2)→10(二进制字符串转十进制) -
parseInt("FF", 16)→255(十六进制字符串,大小写不敏感) -
parseInt("77", 8)→63(八进制字符串) - 避免陷阱:
parseInt("0xFF")(无 radix)按十进制解析,得0;parseInt("0xFF", 10)同样得0,因为前缀被忽略后无法识别
带前缀字符串的自动识别(如 "0b1010"、"0o77"、"0xFF")
推荐用 Number() 安全解析,它能原生识别标准前缀:
-
Number("0b1010")→10 -
Number("0o77")→63 -
Number("0xFF")→255 - 无效输入返回
NaN,建议配合isNaN()校验:isNaN(Number("0xGG")) === true
跨进制直转(如二进制→十六进制)
没有一步到位的方法,需“中间经十进制”两步走:
- 二进制字符串转十六进制:
parseInt("11110000", 2).toString(16)→"f0" - 八进制字符串转二进制:
parseInt("77", 8).toString(2)→"111111" - 十六进制字符串转八进制:
parseInt("ff", 16).toString(8)→"377" - 可封装为工具函数,统一处理输入校验与异常分支
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










