十进制转八进制转换器

填一个十进制数,本页按「除 8 取余、倒序排列」把它转成八进制,并展示每一步的除法过程。支持非负整数与小数部分,结果只在浏览器里算,不上传服务器。

转换口径:整数用「除 8 取余、倒序排列」;小数部分用「乘 8 取整」反复进行。演示值十进制 100,得八进制 144。

使用方法

十进制转八进制转换器是「填数字、点转换、看步骤」三步:

  1. 「十进制数」填要转换的数,演示值 100;可带小数,例如 10.5。
  2. 「小数部分保留位数」决定小数八进制算几位,演示值 6。
  3. 点「转为八进制」,或在输入框按 Enter,结果进上方框并展示除法步骤,按「复制结果」整段拿走。
  4. 想还原演示值按「载入示例」:十进制 100、保留 6 位。

十进制转八进制转换器能解决什么

它解决「十进制怎么变成八进制」的手动换算,适合三类场景:

  • 进制学习:学生做作业时把 100 转成 144、255 转成 377,对照步骤看懂「除 8 取余、倒序」到底怎么排。
  • 编程与底层:权限掩码、文件模式(如 Unix 的 0644)、某些硬件地址用八进制表示,把十进制配置号转过去直接可用。
  • 校验与排错:拿到一串八进制想确认对不对,反向用本页再转一次;小数场景(如浮点尾数的八进制展开)也能给近似值。

本页不做的事:不把八进制转回十进制(需对应反向工具);不处理负数进制或复数;超大整数超出 JavaScript 安全整数范围时会丢精度。它只做十进制到八进制的单向转换。

原理和变量

① 用了哪个具体函数:整数转换用 Number(n).toString(8),底层即「连续除以 8 取余数」;小数转换用循环 frac = frac × 8; 取整,每次取整作为一位八进制小数。

② 关键参数为什么这样取:整数必须「倒序」读余数,因为最后一次除得的余数是最高位;小数必须「正序」读整数位,因为第一次乘得的整数位是最低位。两者方向恰好相反,这是位置计数制的规则。

③ 遵循哪个标准:八进制是基数为 8 的位置计数制,数字只用 0~7,逢 8 进 1;与十进制、二进制的换算遵循标准数制定义,结果可和任意教科书对照。

④ 输入怎么变成输出:演示 100,100 ÷ 8 = 12 余 4,12 ÷ 8 = 1 余 4,1 ÷ 8 = 0 余 1;余数序列(从下往上)是 1、4、4,拼成 144。可验证:1×8² + 4×8¹ + 4×8⁰ = 64 + 32 + 4 = 100。

⑤ 边界与阈值:输入须为非负有限数;空值、非数字、负数会逐项给中文提示。小数位数限 1~10,超出回退到 6;超过安全整数(2⁵³)的整数可能不精确。

⑥ 常见误用的正确解释:余数要倒序,不是顺读——把 4、4、1 顺读成 441 是错的,正确是 144。小数部分是正序,别和整数搞反。八进制里没有 8 和 9,出现这两个数字说明输入或理解有误。

完整示例(数值仅作演示)

保持演示值:十进制 100,小数部分保留 6 位。

  • 100 → 除 8 取余:12 余 4、1 余 4、0 余 1 → 倒序 144。
  • 255 → 31 余 7、3 余 7、0 余 3 → 倒序 377。
  • 1000 → 125 余 0、15 余 5、1 余 7、0 余 1 → 倒序 1750。
  • 4096 → 512 余 0、64 余 0、8 余 0、1 余 0、0 余 1 → 倒序 10000。
  • 回算校验:144₈ = 1×64 + 4×8 + 4 = 100,证明转换正确。

这几组数字与下方对照表、默认结果框都能对上。

输入范围与对照表

十进制转八进制转换器的对照表列出常见十进制与八进制对应关系:

十进制与八进制对照(均为非负整数)
十进制八进制回算校验
10121×8 + 2 = 10
100(演示值)1441×64 + 4×8 + 4 = 100
2553773×64 + 7×8 + 7 = 255
51210001×512 = 512
100017501×512 + 7×64 + 5×8 = 1000
202437503×512 + 7×64 + 5×8 = 2024
4096100001×4096 = 4096

八进制数字只含 0~7;看到 8 或 9 就说明不是八进制。对照表每行都能用「各位加权求和」还原回十进制。

结果边界和舍入

舍入位置:整数部分精确无舍入;小数部分按「保留位数」截取到指定位数(默认 6 位),不是四舍五入而是截断,因为八进制小数常要求固定长度。

什么时候会拒绝计算:输入为空、非数字、为负数或含非法字符(如字母、中文)时,会给出具体中文提示后才继续,不会输出乱码。

精度和范围:整数在 JavaScript 安全整数(≤ 2⁵³−1)内精确;超出会丢精度。小数八进制是有限近似,位数越多越接近原值。

结果性质:这是标准数制换算的确定结果,同一输入永远同一输出,可作学习与上机校验用途。

常见问题

余数到底怎么排?

整数转换余数要倒序:最后一次除得的余数是最高位。100 的余数依次是 4、4、1,从下往上读成 144,不是 441。

为什么没有 8 和 9?

八进制基数是 8,每一位只能是 0~7,逢 8 进 1。若结果里出现 8 或 9,一定是换算或理解出错了。

小数怎么转?

小数部分用「乘 8 取整」反复进行:0.5 × 8 = 4.0 取 4,得 0.4₈。本页按你设的保留位数给出近似值,位数越多越准。

负数能转吗?

本页只处理非负整数;若输入负数会提示「暂只支持非负」。需要负号时,可先把绝对值转成八进制,再手动加负号。

很大的数准吗?

在 JavaScript 安全整数(2⁵³−1,约 9×10¹⁵)以内精确;超过这个范围整数会丢精度,结果可能偏差,建议分段或用大数库。

怎么验证转对了?

把八进制按位加权求和还原:144₈ = 1×64 + 4×8 + 4 = 100。对照表每行都附了校验式,可逐行核对。

和二进制有什么关系?

八进制一位正好对应二进制三位(如 144₈ = 001 100 100₂),因此八进制常被用来简写二进制,方便阅读和排错。

我的输入会被保存或上传吗?

不会。全部转换在浏览器内完成,刷新即清空;点「转为八进制」时没有任何网络请求发出。

相关工具