在线进制转换器:2–36 进制互转与大整数
什么是进制转换
进制转换(Number Base Conversion)是在不同数字表示系统之间转换数值的过程,用在线 number base converter 可以瞬间完成。计算机科学中常用的进制有:
| 进制 | 基数 | 数字字符 | 常见用途 |
|---|---|---|---|
| 二进制(Binary) | 2 | 0, 1 | 计算机底层、位运算 |
| 八进制(Octal) | 8 | 0-7 | Unix 文件权限(chmod 755) |
| 十进制(Decimal) | 10 | 0-9 | 人类日常计数 |
| 十六进制(Hexadecimal) | 16 | 0-9, A-F | 内存地址、颜色代码、哈希值 |
| 自定义(Base N) | 2–36 | 0-9 再接 a–z | 短码、Base36 ID、教学演示 |
为什么需要进制转换
- 调试底层代码:查看内存地址、字节数据需要十六进制
- 位运算:位掩码、位移操作需要二进制思维
- 颜色处理:CSS 颜色用十六进制(
#FF5733) - 网络配置:子网掩码涉及二进制和十进制转换
- 文件权限:Linux 权限用八进制表示(
chmod 755) - 短标识符:Base36(
0-9a-z)把大整数压成更短的可打印串,常见于票据号与邀请码
进制转换方法
手动转换技巧
十进制 → 二进制(除 2 取余法):
13 ÷ 2 = 6 ... 1
6 ÷ 2 = 3 ... 0
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
结果:1101
十进制 → 十六进制(除 16 取余法):
255 ÷ 16 = 15 ... 15 (F)
15 ÷ 16 = 0 ... 15 (F)
结果:FF
编程语言中的进制转换
JavaScript / TypeScript:
const num = 255;
num.toString(2) // "11111111"(二进制)
num.toString(8) // "377"(八进制)
num.toString(10) // "255"(十进制)
num.toString(16) // "ff"(十六进制)
// 字符串 → 数字(务必写明 radix)
parseInt("ff", 16) // 255
parseInt("11111111", 2) // 255
// 超过 Number.MAX_SAFE_INTEGER 必须用 BigInt
BigInt("0x1fffffffffffff") + 1n
Python:
num = 255
bin(num) # "0b11111111"
oct(num) # "0o377"
hex(num) # "0xff"
# 字符串 → 数字(任意 2–36)
int("ff", 16) # 255
int("z", 36) # 35
Go:
import "strconv"
num := 255
strconv.FormatInt(int64(num), 2) // "11111111"
strconv.FormatInt(int64(num), 8) // "377"
strconv.FormatInt(int64(num), 16) // "ff"
// 字符串 → 数字
strconv.ParseInt("ff", 16, 64) // 255
strconv.ParseInt("11111111", 2, 64) // 255
如何使用在线进制转换器
使用 ToolVault 工具匣 的 进制转换器:
- 输入整数值(可带匹配进制的
0x/0b/0o前缀) - 选择输入进制:预设 2/8/10/16,或「自定义」填 2–36
- 需要时切换字母大小写(A–Z / a–z),或勾选额外输出某一进制
- 切到「批量」可每行一个数同时转换;非法位会标出位置与可用字母表
- 一键复制所需格式
工具内部用 BigInt 逐位累加,雪花 ID、64 位全 F 十六进制等超过 JavaScript 安全整数的值不会静默舍入。
常见进制对照表
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 16 | 10000 | 20 | 10 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
开发者真错的那些转换
十六进制转二进制是白送的(每个十六进制位恰好 4 bit——背一次 16 个映射,无需算术)。坑都在别处:JavaScript 里超过 2^53 的十六进制静默丢位(0x1FFFFFFFFFFFFF + 1——双精度尾数之外需要 BigInt 或字符串数学);前导零八进制遗留(有的语言当八进制有的当十进制——JSON 禁前导零就是为此);子网掩码的十六进制(FF=255 是唯一出现的值,/24 = FF FF FF 00 被网络人当模式背)。转换器用显式 BigInt 字符串数学绕开这一切——语言的隐式行为正是工具要避开的 bug 源。
为什么 IPv4、MAC、颜色、Unicode 都是十六进制
十六进制赢下的领域有一个共同点:人读机器对齐的值——IPv4 点分十进制(255 恰好两位十六进制)、MAC 地址(48 bit 写 12 个十六进制)、CSS 颜色(#RRGGBB 字节对齐)、Unicode 码点(U+4E2D——十六进制就是身份)。十六进制位干净映射到字节(每字节 2 位),人读形式成为机器值的直接窗口。base64 赢了传输(密度——每字符 6 bit);base58 赢了地址(看错字符要付钱)。为系统选进制的三个需求名:对齐(hex)、密度(base64)、人抄安全(base32/58)。
2–36 之外在谈什么
语言标准库里的「任意进制」几乎都停在 36:数字位用完 0–9 之后,只剩 26 个拉丁字母。Base36 把十进制长整数压短,适合邀请码;再往上就要换编码体系(Base58/64),那已经不是「同一整数换字母表」而是面向字节串的编码。若你的输入里出现 +、/ 或填充符 =,那是 Base64,不是进制转换器该吃的文本——先确认你手里的是「整数的另一套写法」,还是「字节的可打印封装」。
浮点:揭示表示论的那个转换问题
「0.1 的二进制」是进制停止做算术、开始讲表示论的地方:0.1 的十进制在二进制无限循环(0.000110011...)——这正是每个 IEEE 754 语言里 0.1 + 0.2 ≠ 0.3 的原因。显示实际存储值的转换器(0.1 的 double 位模式 0x3FB999999999999A)比任何解释讲得都多。精确小数(钱)的答案从来不是换个进制——是换个类型(整数分、decimal 库、有理数);更精确地在进制间转换 0.1 修不了表示本身装不下的问题。本站进制转换器只接受整数:带小数点的输入会直接报错并指出非法位,避免「截断」伪装成成功。
FAQ
为什么程序员偏爱十六进制?
十六进制是二进制的「人类友好」缩写。1 位十六进制 = 4 位二进制,所以 0xFF 就是 11111111。十六进制在表示字节数据、内存地址时比十进制更直观,因此 byte converter 是底层开发者的常用工具。
八进制还有什么用?
主要用于 Linux 文件权限。chmod 755 中的 755 就是八进制:7=rwx,5=r-x。也用于某些编程语言的转义字符(\012 = 换行符)。
二进制如何快速转十六进制?
每 4 位二进制对应 1 位十六进制。从右往左分组:1111 1111 → F F → FF。这是计算机内部的直接映射,用 number base converter 可以验证任意数值。
批量转换适合什么场景?
从日志里粘贴一列雪花 ID、一串十六进制常量、或要对账的 Base36 短码时,用批量模式每行一个数即可;坏行单独报错,不拖垮整批。
排查注记
「开发者真错的那些转换」一节先说十六进制转二进制是白送的(每位恰好 4 bit),把火力集中在真出事的场景:2^53 以上静默丢位、前导零八进制的历史分歧——工具用显式 BigInt 字符串数学绕开语言的隐式行为。浮点一节把 0.1 + 0.2 ≠ 0.3 归到表示论:精确小数的答案从来不是换进制、是换类型(整数分、decimal 库),所以转换器只接受整数,带小数点直接报错,避免「截断」伪装成成功。「2–36 之外」还给了个判别句:输入里出现 +、/、= 那是 Base64——先分清手里是「整数的另一套写法」还是「字节的可打印封装」。
ToolVault 工具匣 出品的开发者指南。首页 汇集了更多浏览器本地工具。
相关工具
相关文章
Markdown 转 Word 交付指南:样式映射与行内降级
把 Markdown 草稿变成可交付的 .docx:pandoc 命令行与浏览器本地转换两条路线,标题/表格/代码块的 Word 原生样式映射对照,行内格式降级清单,以及「可编辑」为什么比「看起来像」更重要。
Word 转 Markdown 怎么转才干净:两条路线与格式保真对照
docx 转 Markdown 教程:pandoc 命令行与浏览器本地转换两条路线对比,标题/表格/图片/自动编号的保真行为,.doc 旧格式、图片体积、合并单元格等常见坑的解法。
中国车牌号规则与校验:普通牌、新能源与特殊格式全解
中国大陆车牌号编码规则详解:普通蓝牌、新能源 GA36D-2018、武警与使馆牌的结构、省份简称与发牌机关编码,附在线校验方法。