JavaScript中数字转二进制或十六进制最常用toString()方法:toString(2)转二进制(负数带负号),toString(16)转十六进制(可链式toUpperCase()变大写),小数会被截断,补零需配合padStart()。

JavaScript 中把数字转成二进制或十六进制字符串,最常用的是 toString() 方法,传入对应的进制基数即可。
用 toString(2) 转二进制
对任意整数(正、负、零)调用 toString(2),可得到其二进制表示的字符串(不带前缀):
-
10.toString(2)→"1010" -
(-5).toString(2)→"-101"(负数会带负号,不是补码形式) -
0.toString(2)→"0"
注意:该方法只支持整数。小数会先被自动舍去小数部分(即向下截断),例如 10.9.toString(2) 也是 "1010"。
用 toString(16) 转十六进制
类似地,toString(16) 返回小写十六进制字符串:
立即学习“Java免费学习笔记(深入)”;
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
255.toString(16)→"ff" -
16.toString(16)→"10" -
(-16).toString(16)→"-10"
如需大写,可链式调用 .toUpperCase():255.toString(16).toUpperCase() → "FF"。
补零与固定位宽(比如 8 位二进制)
toString() 默认不补零。若需固定长度(如字节级显示),可用 padStart():
-
(255).toString(2).padStart(8, '0')→"11111111" -
(10).toString(16).padStart(4, '0')→"000a"
注意:负数补零要小心,建议先处理符号再补,例如:(-10).toString(2).replace('-', '').padStart(8, '0') 得到无符号补零结果(但非标准补码)。
其他方式:parseInt + toString 的组合不适用
parseInt("1010", 2) 是把字符串转数字,不能反向使用。想从数字出发,始终优先用 toString(进制),它简洁、原生、兼容性好(ES3 就支持)。

















