十六进制在线转换器,与十进制、二进制实时互转
自动识别 0x 前缀和大小写,输入十六进制数即刻得到十进制、二进制、八进制结果;支持超长地址逐位换算,精度零丢失。
十六进制 ↔ 其他进制换算器
默认预选「十六进制 → 十进制」;0x 前缀可写可不写,A-F 不区分大小写。
十六进制是什么:程序员的「二进制压缩包」
十六个符号与 A-F 的来历
十六进制(Hexadecimal,常缩写为 Hex)以 16 为基数,用 0-9 加 A、B、C、D、E、F 共十六个符号表示数值,其中 A=10、B=11、C=12、D=13、E=14、F=15,字母大小写等价。书写时常加 0x 前缀避免歧义,例如 0x2F;网页色值则用 # 号开头,两者指向的是同一套计数规则。
位权展开法在十六进制下同样适用,位权从右往左依次是 1、16、256、4096……例如把 0x2F 换成十进制:
0x2F = 2×16 + 15×1
= 32 + 15 = 47(十进制)
十进制转十六进制用「除 16 取余、余数倒排」,余数 10-15 记作 A-F。以 47 为例:47 ÷ 16 = 2 余 15(F),2 ÷ 16 = 0 余 2,倒排得 2F。
与二进制的关系:1 位拆 4 位
十六进制真正的威力在于它是二进制的「压缩写法」:2⁴ = 16,一个十六进制字符恰好对应 4 个二进制位。展开和压缩都不需要任何乘除运算,查表即可:
0x6B → 6 = 0110,B = 1011
二进制为 01101011,即十进制 107
正因为这种一一对应,调试器、十六进制编辑器、抓包工具里的数据都用十六进制展示:32 位地址只写 8 个字符,比 32 个 0 和 1 短得多,又随时能还原出每一个比特。
实例一:看懂网页颜色 #FF5500
CSS 颜色采用 #RRGGBB 格式,RR、GG、BB 各用两位十六进制表示红、绿、蓝三个通道的强度(0-255)。FF5500 拆开看:FF = 255(红拉满)、55 = 85(绿中等)、00 = 0(蓝全无),合成一个偏橙的红色。想手动微调颜色深浅,把十六进制换算成十进制再改,比凭感觉猜快得多。
实例二:内存地址与哈希值
报错信息里的 0x7ffd8a3c21f4 这类地址、git 提交号、MD5 校验值都是十六进制串。以 64 位地址为例,16 个十六进制字符对应 64 个比特;调试时经常需要把它换回十进制比较大小,或者按 4 位分组检查特定比特位——本页转换器都支持,地址再长也不会因为超出数值范围而算错。
十六进制 0 - F 逐位对照表
记熟这 16 行,十六进制与二进制之间就能直接心算,不再依赖工具。
| 十六进制 | 二进制 | 八进制 | 十进制 |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| A | 1010 | 12 | 10 |
| B | 1011 | 13 | 11 |
| C | 1100 | 14 | 12 |
| D | 1101 | 15 | 13 |
| E | 1110 | 16 | 14 |
| F | 1111 | 17 | 15 |
十六进制转换常见问题
十六进制 FF 等于十进制多少?
FF = 15×16 + 15 = 255。顺带记住一组常用值:F=15、FF=255、FFF=4095、FFFF=65535,它们分别对应二进制 4、8、12、16 个 1,看颜色值和地址范围时非常常用。
网页颜色 #FF5500 里的数字是什么意思?
这是 #RRGGBB 格式:每两位十六进制代表一个颜色通道的强度(十进制 0-255)。FF=255 表示红色通道拉满,55=85 表示绿色中等,00=0 表示蓝色为 0,混合后是橙红色。三个通道都写 FF(#FFFFFF)就是白色,全写 00 就是黑色。
十六进制为什么用字母 A 到 F?
因为它需要 16 个不同符号,0-9 只有十个数字,于是约定用前六个字母补足:A=10、B=11、C=12、D=13、E=14、F=15。字母只是符号,不代表「比 9 更大的未知数」,大小写完全等价,0xFF 和 0xff 是同一个数。
0x 前缀必须写吗?
取决于场景:代码里通常必须写(否则 1A 会被当成标识符或非法数字),日常口算和记录时可以省略。本站转换器两种写法都接受,粘贴 0x6B 或 6B 均可正确换算。
为什么内存地址都用十六进制显示?
因为十六进制与二进制每 4 位一一对应,显示紧凑又能随时还原每个比特。一个 64 位地址写成 16 个字符,而二进制要写 64 个字符;同时十六进制的每一位都是独立的 4 比特组,便于对齐字节(2 个十六进制字符 = 1 字节)检查数据。