进制转换是在二进制、八进制、十进制、十六进制(以及其他基数)之间改写同一个整数。下面重点说明标准要点。
进制转换相关规范
- 标明源进制和目标进制,避免把“10”读错
- 补齐到 4 位(十六进制)或 3 位(八进制)再分组
- 有符号数先按补码理解位模式,再写进制
- 小数进制转换用乘基取整,误差要另说,本文以整数为主
示例
输入:十进制 100
转换结果:二进制 0b1100100,八进制 0o144,十六进制 0x64
说明:四种写法表示同一个整数,可在进制转换工具中互核对。
工作原理
任意进制转到十进制用按权展开;十进制转到目标进制用除基取余、倒序写余数。二进制与十六进制之间不必经过十进制:从右向左每 4 位二进制合成 1 位十六进制,例如 1010 1111 → AF。
注意事项
- JS 的 parseInt("08") 在老环境可能被当八进制
- 负号应写在进制表示的最前面,或改用补码位模式
- 不要把字节序列按“一整串十六进制”和“按字节分开”搞混
- 大整数在 JS 中超过 Number.MAX_SAFE_INTEGER 要用 BigInt
本站的进制转换工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【2、8、16 进制怎样快速互转?】二进制与十六进制按 4 位一组,与八进制按 3 位一组,不必先转十进制。
【42 的四种写法是什么?】十进制 42,二进制 101010,八进制 52,十六进制 2A。
【为什么 0xFF 有时是 255 有时是 -1?】位模式相同,按无符号读是 255,按 8 位补码读是 -1。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。