进制转换计算器

将整数转换为二进制、八进制、十进制和十六进制。

输入您想要转换的十进制整数。

二进制值

11111111

八进制377
十进制255
十六进制FF

如何使用此进制转换计算器

  1. 输入整数

    在“整数”字段中输入一个非负整数(例如 255 或 4096)。

  2. 查看二进制值

    二进制结果显示了以 2 为基数的表示形式。

  3. 查看八进制和十六进制

    查看八进制和十六进制结果以获取更简洁的表示。

  4. 验证十进制

    十进制输出确认了原始值,以便进行交叉核对。

计算方法

此进制转换计算器的工作原理

此进制转换计算器将十进制(10 进制)整数转换为二进制(2 进制)、八进制(8 进制)和十六进制(16 进制)——这是计算中最常用的四种数制。每种位值计数系统的工作原理都相同:每个数位代表基数的连续幂,数值是每个数字与其位置权重的乘积之和。进制转换是底层编程、数字逻辑设计、网络工程(MAC 和 IPv6 地址)、CSS 颜色代码、Unix 文件权限掩码以及调试期间内存地址检查中的基本操作。

公式
除基取余法:将 N 除以目标基数 R,记录余数,用商重复此过程直到商为 0,然后逆序读取余数
N 输入的十进制(10 进制)整数
R 目标基数(二进制为 2,八进制为 8,十六进制为 16)
每一步整数除法 N ÷ R 的结果;成为下一次迭代的新 N
余数 每一步的 N mod R — 成为转换结果的一位数字(二进制为 0–1,八进制为 0–7,十六进制为 0–F)
结果 从后往前读取余数,组成目标进制的数值
示例

将十进制数 255 转换为二进制、八进制和十六进制。二进制 (R = 2):255 ÷ 2 = 127 余 1,127 ÷ 2 = 63 余 1,63 ÷ 2 = 31 余 1,31 ÷ 2 = 15 余 1,15 ÷ 2 = 7 余 1,7 ÷ 2 = 3 余 1,3 ÷ 2 = 1 余 1,1 ÷ 2 = 0 余 1。从下往上读取余数:11111111。八进制 (R = 8):255 ÷ 8 = 31 余 7,31 ÷ 8 = 3 余 7,3 ÷ 8 = 0 余 3 → 377。十六进制 (R = 16):255 ÷ 16 = 15 余 15 (F),15 ÷ 16 = 0 余 15 (F) → FF。

十进制 4096 → 二进制 1000000000000,八进制 10000,十六进制 1000。有助于理解 4 KiB = 4096 字节。

十进制 15 → 二进制 1111,八进制 17,十六进制 F。每个十六进制数字正好对应四个比特;F = 1111。

假设条件
  • 输入必须是非负整数(零或正整数)。小数和负数需要扩展算法(例如有符号二进制的补码),这超出了本工具的范围。
  • 大于 9 的十六进制数字使用大写字母 A–F 表示,遵循大多数编程语言、RFC 和硬件文档的惯例。
  • 输出中省略前导零。对于固定宽度的表示(例如 8 位或 32 位二进制),请手动将结果填充到所需宽度。
  • 计算器仅接受非负整数。拒绝大于 2^53 − 1(JavaScript 的 Number.MAX_SAFE_INTEGER)的数值,以确保显示的数字保持精确。
备注
  • 每个十六进制数字对应四个二进制位 (bits),每个八进制数字对应三个二进制位。一旦记住了 16 种半字节模式,这种关系就能让十六进制、八进制和二进制之间的心算转换变得非常迅速。
  • 值得记忆的常用值:0xFF = 255,0x100 = 256,0xFFFF = 65535,0xFFFFFFFF = 4,294,967,295(最大无符号 32 位整数)。
  • Unix 文件权限使用八进制:755 表示 rwxr-xr-x(所有者读/写/执行,组和其他人读/执行)。每个八进制数字编码三个权限位。
  • CSS 十六进制颜色代码是三个连续的十六进制字节值,分别代表红、绿、蓝通道 —— 例如,#FF8800 表示 255 红、136 绿、0 蓝。
来源
  1. 位值制记数系统理论 —— Knuth, D. E.,《计算机程序设计艺术》第 2 卷:半数值算法,第 4.1 节
  2. IEEE 754-2019 —— 浮点算术标准(整数表示上下文)
  3. RFC 4291 —— IP 第 6 版寻址架构(IPv6 的十六进制表示法)

了解计算机中的数制系统

每个位值制记数系统都使用一个基数(Radix),并根据位置为每个数字分配权重。在十进制(基数 10)中,最右侧是个位,接着是十位、百位。二进制(基数 2)仅使用 0 和 1,直接对应晶体管的开/关状态。八进制(基数 8)每位对应三个比特,十六进制(基数 16)每位对应四个比特,并用 A–F 表示 10–15。进制转换采用除基取余法:将数字除以目标基数,记录余数,用商重复此过程直到为零,最后逆序排列余数。这是编程中进制转换的核心算法。

开发者进行进制转换的实际应用场景

开发者在检查内存转储、调试位运算、解析文件权限和处理颜色代码时会用到进制转换。Unix 文件权限(如 755)是八进制:每个数字代表所有者、属组和其他人的读/写/执行权限。CSS 十六进制颜色(如 #FF8800)由三个十六进制字节组成。IPv6 地址采用十六进制。位掩码和标志常以十六进制表示以提高可读性(如 0xFF 代表字节掩码)。在调试底层代码或网络协议时,在十进制、十六进制和二进制间转换能快速揭示底层的位模式。

进制转换计算器常见问题

为什么在计算中使用二进制、八进制和十六进制?

二进制直接映射到晶体管的开/关状态,使其成为硬件的母语。八进制和十六进制是二进制的紧凑简写 —— 一个十六进制数字代表恰好四个位,一个八进制数字代表三个位 —— 因此程序员使用它们来比长二进制字符串更简洁地表达地址、位掩码和颜色代码。

如何进行反向转换(例如,十六进制转十进制)?

将每个数字乘以其所在位置的基数幂,然后将结果相加。例如,十六进制 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 十进制 419。

遇到非常大的数字会怎样?

该计算器仅接受最高达 JavaScript 安全整数限制的数值:2^53 − 1 (9,007,199,254,740,991)。更大的数字将被拒绝,因为它们在浏览器中可能会丢失最低有效位。

我可以转换负数或分数吗?

此工具处理非负整数。在计算中,负整数通常使用固定位宽的补码表示,而分数值使用 IEEE 754 浮点编码——这两者都需要此计算器未收集的额外参数。

为什么 0x 前缀出现在代码中,但没有出现在输出中?

0x 前缀(以及二进制的 0b,八进制的 0o)是特定于语言的字面量语法,用于告知编译器或解释器预期的进制。计算器输出不带前缀的原始数字字符串,以便在任何上下文中使用。

作者 Jan Křenek 创始人兼首席开发人员
审核 DigitSum 方法论审核 公式验证与质量保证
最后更新 2026年3月10日

此结果仅供参考,重要决策请咨询专业人士。

输入内容将保留在浏览器中,除非未来的功能另有明确说明。