只有Number类型支持toString(radix)进制转换,字符串需先转数字;如Number("255").toString(16)得"ff",而"255".toString(16)仍为"255"。

String 对象本身没有用于进制转换的 toString() 方法。真正支持进制转换的是 Number 对象(包括数字字面量、Number 实例,以及能被隐式转为数字的值)。字符串调用 toString() 默认只返回自身(即 "abc".toString() === "abc"),不接受参数,也不能指定进制。
哪些值能用 toString(radix) 转进制?
只有 数字类型(Number) 支持带参数的 toString(radix),其中 radix 是 2–36 之间的整数,代表目标进制:
-
(255).toString(16)→"ff"(十进制转十六进制) -
100..toString(2)→"1100100"(十进制转二进制) -
0xff.toString(8)→"377"(十六进制字面量先解析为数字,再转八进制) -
(-42).toString(2)→"-101010"(负数保留负号,按绝对值转换)
字符串怎么参与进制转换?
如果手头是字符串(如 "255"),需先转成数字,再调用 toString(radix):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 用
Number(str)或一元加号:+"255" - 用
parseInt(str, 10)(注意:必须指定radix=10,否则可能误判为八进制) - 示例:
Number("255").toString(16)→"ff" - 错误写法:
"255".toString(16)→ 仍是"255"(忽略参数)
常见陷阱与注意事项
-
toString()的radix参数不能省略(除非默认十进制),且必须是 2–36 整数;超出范围会抛RangeError - 浮点数也支持,但结果可能含小数点,如
(10.5).toString(2)→"1010.1" - 对于非数字字符串(如
"abc"),Number("abc")得NaN,NaN.toString(2)报错;应提前校验 - 想把二进制字符串(如
"1101")转回十进制?用parseInt("1101", 2),不是toString
核心记牢:进制转换靠的是 数字的 toString(radix),字符串要先转数字,不能跳过这步。
立即学习“Java免费学习笔记(深入)”;

















