十六进制转十进制转换器
这个十六进制转十进制转换器可将十六进制(基数 16)数转换为十进制(基数 10)表示。输入任意十六进制数,即可查看其十进制等值,并附有逐步位置值分解说明,同时提供反向十进制转十六进制功能。
十六进制转十进制转换器
在十六进制和十进制数字系统之间转换
常见问题
如何将十六进制转换为十进制?
将每个十六进制数字乘以其位置对应的16的幂次,然后求和。写出十六进制数,从右到左从16⁰开始分配16的幂次,将A-F等字母转换为对应的十进制值(A=10、B=11、C=12、D=13、E=14、F=15),将每个数字乘以其16的幂次,然后将所有乘积相加。例如,十六进制2F = 2×16¹ + 15×16⁰ = 32 + 15 = 47。
什么是十六进制?
十六进制(hex)是一种以16为基数的数字系统,使用十六个符号:0-9表示0到9的值,A-F表示10到15的值。它广泛用于计算,因为每个十六进制数字精确代表4个二进制位,提供了一种紧凑且便于人类阅读的表示二进制数据的方式。两个十六进制数字代表一个字节(8位),所以二进制中像11111111这样的字节值在十六进制中可以简单地写为FF。
十六进制到十进制的公式是什么?
十六进制到十进制的公式为:十进制 = d(n)×16ⁿ + d(n-1)×16^(n-1) + ... + d(1)×16¹ + d(0)×16⁰,其中d(i)是位置i(从右侧0开始计数)处十六进制数字的十进制值。十六进制A-F在乘以对应的16的幂次之前,先替换为其十进制等值(A=10到F=15)。
如何快速将十六进制转换为十进制?
对于小的十六进制值,记住每个十六进制数字位置的值依次为1、16、256、4096等。对于两位十六进制数如"AB",计算:A(10)×16 + B(11) = 160 + 11 = 171。对于单个十六进制数字0-F,十进制值就是数字本身(0-9)或字母的值(A=10到F=15)。对于较大的值,使用我们免费的十六进制转十进制转换器立即获得结果。
0xFF的十进制是什么?
0xFF的十进制是255。0x前缀表示十六进制数。十六进制中的F等于十进制15,所以FF = 15×16 + 15 = 240 + 15 = 255。这是无符号8位字节的最大值(二进制中所有8位都设为1:11111111)。0xFF通常在编程中用作位掩码,以从较大的值中隔离单个字节。
如何将有符号十六进制转换为十进制?
对于有符号十六进制(补码),检查最高有效位是否被设置。对于8位值,如果十六进制为80-FF,则数字为负数。求负值:反转所有位并加1。例如,十六进制FF作为有符号8位整数:FF=二进制11111111,反转得00000000,加1得00000001=1,所以结果是-1。十六进制7F(01111111)是最大正有符号字节值:127。
十六进制和十进制有什么区别?
十六进制是基数16(使用数字0-9和字母A-F),而十进制是基数10(只使用数字0-9)。十六进制在计算中更受欢迎,因为它与二进制完美对齐:每个十六进制数字精确代表4位。这使十六进制成为二进制数据的紧凑表示——二进制中的字节值11010110在十六进制中是D6,但在十进制中是214。十进制是日常数学中使用的标准人类数字系统。
十六进制在计算中用于哪些场景?
十六进制在计算中被广泛使用:Web设计中的颜色代码(#FF5733)、调试中的内存地址(0x7FFF5FBFF8AC)、网络中的MAC地址(00:1A:2B:3C:4D:5E)、Unicode字符代码(字母A的U+0041)、加密哈希(SHA-256产生64个十六进制数字)、汇编语言编程和IPv6地址。它受到偏爱,因为两个十六进制数字精确代表一个字节。
如何在Python中将十六进制转换为十进制?
在Python中,使用内置的int()函数配合基数16:int("FF", 16)返回255。也可以使用0x前缀的十六进制字面量:0xFF等于255。反向转换(十进制到十六进制),使用hex(255)返回"0xff",或format(255, "X")得到不带前缀的大写:"FF"。
0x前缀是什么意思?
0x前缀是C、Java、Python和JavaScript等编程语言中使用的约定,表示数字是十六进制(基数16)。例如,0xFF表示十六进制值FF(十进制255),而不是字符串"FF"。其他常见的十六进制表示法包括:CSS颜色代码中的#(#FF5733)、某些汇编语言中的$,以及Intel汇编中的h后缀(FFh)。前缀不改变值——它只是告诉解析器将数字解释为十六进制。
十六进制转十进制方法
将十六进制转换为十进制使用按权展开法——原理与十进制数的工作方式相同,但以 16 为基数而非 10。十六进制数中每个数位都有一个对应的 16 的幂次作为权值,十进制结果是所有数位的值乘以各自权值后的总和。
按权展开公式
对于一个 n 位的十六进制数,公式为:
D = d(n-1) × 16^(n-1) + d(n-2) × 16^(n-2) + ⋯ + d(1) × 16^1 + d(0) × 16^0
其中 d(i) 是位置 i(从右侧第 0 位起算)处十六进制数位的十进制值。字母对应关系:A=10、B=11、C=12、D=13、E=14、F=15。
逐步转换方法
- 写下十六进制数 — 去掉
0x或#等前缀。例如0x1A3F变为1A3F。 - 从右到左标注 16 的幂次 — 最右侧数位对应 16⁰=1,依次向左为 16¹=16、16²=256、16³=4,096,以此类推。
- 将字母 A–F 转换为十进制值 — 用 10 替换 A,11 替换 B,12 替换 C,13 替换 D,14 替换 E,15 替换 F。数字 0–9 保持不变。
- 每个数位乘以对应权值 — 计算每个数位的十进制值与对应 16 的幂次之积。
- 所有乘积求和 — 将所有乘积相加,结果即为十进制等值。
16 的幂次参考表
| 幂次 | 值 | 说明 |
|---|---|---|
| 16⁰ | 1 | 个位 |
| 16¹ | 16 | 十六位 |
| 16² | 256 | 二百五十六位 |
| 16³ | 4,096 | 四千零九十六位 |
| 16⁴ | 65,536 | 16 位边界 |
| 16⁸ | 4,294,967,296 | 32 位边界 |
十六进制转十进制对照表(00–FF)
此完整对照表涵盖从 00 到 FF 的全部 256 个字节值,每行显示十六进制值、对应十进制值、8 位二进制表示及八进制等值。
快速参考——单位十六进制数字 0–F:
| 十六进制 | 十进制 | 二进制 | 八进制 |
|---|---|---|---|
| 00 | 0 | 00000000 | 000 |
| 01 | 1 | 00000001 | 001 |
| 02 | 2 | 00000010 | 002 |
| 03 | 3 | 00000011 | 003 |
| 04 | 4 | 00000100 | 004 |
| 05 | 5 | 00000101 | 005 |
| 06 | 6 | 00000110 | 006 |
| 07 | 7 | 00000111 | 007 |
| 08 | 8 | 00001000 | 010 |
| 09 | 9 | 00001001 | 011 |
| 0A | 10 | 00001010 | 012 |
| 0B | 11 | 00001011 | 013 |
| 0C | 12 | 00001100 | 014 |
| 0D | 13 | 00001101 | 015 |
| 0E | 14 | 00001110 | 016 |
| 0F | 15 | 00001111 | 017 |
完整的 00–FF 对照表(256 条)可在上方的交互式转换器中查阅,可即时查找任意字节值。
本表涵盖所有单字节十六进制值(00–FF)及其对应的十进制、8 位二进制和八进制等值。对于超过 FF 的值,对每个十六进制数位应用相同的按权展开公式即可。
十六进制转十进制示例
以下为逐步展示十六进制转十进制过程的计算实例。
将 2F 转换为十进制
十六进制:2F
2 × 16¹ = 2 × 16 = 32
F(15)× 16⁰ = 15 × 1 = 15
32 + 15 = 47
结果:2F₁₆ = 47₁₀
将 FF 转换为十进制
十六进制:FF
F(15)× 16¹ = 15 × 16 = 240
F(15)× 16⁰ = 15 × 1 = 15
240 + 15 = 255
结果:FF₁₆ = 255₁₀ (无符号字节的最大值)
将 1A3F 转换为十进制
十六进制:1A3F
1 × 16³ = 1 × 4096 = 4096
A(10)× 16² = 10 × 256 = 2560
3 × 16¹ = 3 × 16 = 48
F(15)× 16⁰ = 15 × 1 = 15
4096 + 2560 + 48 + 15 = 6719
结果:1A3F₁₆ = 6,719₁₀
将 DEADBEEF 转换为十进制
DEADBEEF 是著名的"十六进制语"调试标记,常用于标记未初始化的内存区域。
十六进制:DEADBEEF
D(13)× 16⁷ = 13 × 268,435,456 = 3,489,660,928
E(14)× 16⁶ = 14 × 16,777,216 = 234,881,024
A(10)× 16⁵ = 10 × 1,048,576 = 10,485,760
D(13)× 16⁴ = 13 × 65,536 = 851,968
B(11)× 16³ = 11 × 4,096 = 45,056
E(14)× 16² = 14 × 256 = 3,584
E(14)× 16¹ = 14 × 16 = 224
F(15)× 16⁰ = 15 × 1 = 15
结果:DEADBEEF₁₆ = 3,735,928,559₁₀
将颜色代码 #3A7BD5 转换为十进制
CSS 十六进制颜色代码将 RGB 通道值编码为两位十六进制数字对。
完整值:3A7BD5₁₆ = 3,833,813₁₀
按通道拆分(每对为一个字节):
红色:3A₁₆ = 3 × 16 + 10 = 58
绿色:7B₁₆ = 7 × 16 + 11 = 123
蓝色:D5₁₆ = 13 × 16 + 5 = 213
RGB 结果:(58, 123, 213) — 一种蓝色调
编程中的十六进制转十进制
大多数编程语言都提供了内置函数用于十六进制字符串与十进制整数之间的转换。
Python
# 将十六进制字符串转换为十进制整数
hex_value = "FF"
decimal_value = int(hex_value, 16)
print(decimal_value) # 255
# 使用 0x 前缀字面量
value = 0xFF
print(value) # 255
# 反向转换(十进制转十六进制)
print(hex(255)) # '0xff'
print(format(255, 'X')) # 'FF'
# 较大的十六进制值
big_hex = "DEADBEEF"
big_decimal = int(big_hex, 16)
print(big_decimal) # 3735928559
JavaScript
// 将十六进制字符串转换为十进制数字
const hexValue = "FF";
const decimalValue = parseInt(hexValue, 16);
console.log(decimalValue); // 255
// 使用 0x 前缀字面量
const value = 0xFF;
console.log(value); // 255
// 反向转换(十进制转十六进制)
console.log((255).toString(16).toUpperCase()); // 'FF'
// 超过 2^53 的值需使用 BigInt
const bigHex = "DEADBEEFDEADBEEF";
const bigDec = BigInt("0x" + bigHex);
console.log(bigDec.toString()); // '16045690984833335023'
C 语言
#include <stdio.h>
#include <stdlib.h>
int main() {
/* 使用 strtol 将十六进制字符串转为十进制 */
const char *hexStr = "FF";
long decimal = strtol(hexStr, NULL, 16);
printf("%ld\n", decimal); /* 255 */
/* 使用十六进制字面量 */
int value = 0xFF;
printf("%d\n", value); /* 255 */
/* 较大的值 */
unsigned long big = strtoul("DEADBEEF", NULL, 16);
printf("%lu\n", big); /* 3735928559 */
return 0;
}
十六进制转十进制的应用场景
- 内存地址 — 调试工具以十六进制显示内存地址(如
0x7FFF5FBFF8AC)。转换为十进制有助于偏移量计算和指针运算。 - 网页颜色代码 — CSS 十六进制颜色(如
#FF5733)将 RGB 通道值编码为 0–255 的十进制数。将十六进制数字对转换为十进制可得到实际颜色强度:FF=255(红色最大值)、57=87(中等绿色)、33=51(低蓝色)。 - MAC 地址 — 网络接口标识符(
00:1A:2B:3C:4D:5E)使用十六进制表示法。在某些网络管理任务和数据库查询中需要转换为十进制。 - Unicode 码点 — 字符通过十六进制码点标识(如字母"A"对应 U+0041)。将 U+0041 转换为十进制得到 65,即其 ASCII 值。
- 密码学哈希值 — SHA-256 等哈希值以十六进制显示。将各字节转换为十进制可用于校验和验证和统计分析。
相关转换工具
- 十六进制转二进制 — 将十六进制数转换为二进制,带 4 位分组可视化
- 十六进制转 RGB 颜色 — 将十六进制颜色代码转换为网页设计用的 RGB 值
- 十六进制转文本 — 将十六进制字符串解码为可读的 ASCII 文本
- 二进制转十进制 — 将二进制数转换为十进制表示
- 二进制转八进制 — 将二进制数转换为八进制(基数 8)值