Skip to main content
🔬 Advanced

十六进制计算器

增加,减去和转换十六进制数字. 执行十六进制算法并转换成十进制或二进制. 免费的数学计算器. 立即获得结果.

了解十六进制 (基础-16):基础

十六进制 (hex) 是一个基数16的位数系统.它使用16个不同的符号:数字0 - 9表示0到9的值,字母A - F (或a - f) 表示10到15的值.一个十六进制数字代表正好四个二进制比特 (一个" 嘴"),使十六进制成为以人类可读格式表示二进制数据的最自然方法.

每个六进制数字的位置值是16的权值.对于六进制数字2F4:

将十进制数字转换为六进制数字:重复除以16并记录剩余数 (最右边的数字首先). 756 ÷ 16 = 47 R 4; 47 ÷ 16 = 2 R 15 (F); 2 ÷ 16 = 0 R 2. 读剩余数向上: 2F416 . 在大多数编程语言中,六进制文字的前 是0x: 0x2F4=756个

六进制到十进制的转换表

用于将单个六进制数字和常见的六进制值转换为十进制的快速参考:

一个魔鬼十进制二进制常见含义
没有.00000 其他没有字节,错误,关闭
第01集100000001 其他是的,启用
没有.100000 1010 其他新行字符 (LF)
没有.130000 一百一十一运输返回 (CR)
0x1F310001 1111 年 月 日单元分离器
0x20 时间320010 其他空间字符 (ASCII)
第四十一集650100 0001 其他在ASCII中"A"
第61集970110 0001 其他在ASCII中"a" (小写)
0x7F第127条0111 一一一DEL字符;最大签名的 咬对
0x80 时间一百二十八一千万符号位集 (负在符号字节中)
0xFF 在255 其他1111 1111 其他最多未签名字节;所有位设置
一百分之零美国一万万万万一个多于最大字节
没有.六万五百三十五十六个最大 16 位未签名值
0xFFFFFF一万六千七百七十二五24个最多24位 (16M种颜色)

六进制和二进制之间的关系是直接的:每个六进制数字映射到正好4位.A = 1010,B = 1011,C = 1100,D = 1101,E = 1110,F = 1111.将0xAB转换为二进制:A=1010,B=1011 -> 101010112 = 17110.

六进制算法:加法,减法,乘法

十六进制算法遵循与十进制算法相同的规则,但运行和借用16而不是10.理解十六进制算法对于汇编编程,嵌入式系统和阅读编译器输出至关重要.

添加的例子:3A + 27. 单位: A + 7 = 10 + 7 = 17 = 1x16 + 1 -> 写 1, 携带 1. 十六位数: 3 + 2 + 1 (携带) = 6. 结果: 6116 = 9710. 验证: 58 + 39 = 97.

减法示例:C3 - 5F. 单位: 3 < F (15),所以借用: 3 + 16 - 15 = 4,并将 1 转移到下一列. 十六位数: C (12) - 5 - 1 (借用) = 6. 结果: 6416 = 10010. 验证: 195 - 95 = 100.

一个乘法例子:1A×3. A×3=30=1E16 (写E,携带1). 1×3+1=4. 结果: 4E16=7810. 验证: 26×3=78.

对于复杂的六进制计算,转换为十进制,计算和反转换通常更可靠,除非你有深入的练习. 然而,理解六进制算法可以建立对内存布局,CPU寄存器和数据表示的直觉.

网页设计中的六进制:颜色代码

HTML和CSS颜色代码是编程之外十六进制的最明显的应用之一.颜色表达为#RRGGBB,每个频道范围从00 (0强度) 到FF (255 =全强度).这给出了2563 = 16,777,216种可能的颜色.

六种颜色红色绿色蓝色的颜色名称
#FF0000 在255 其他00纯红色
#00FF00 没有0255 其他0纯绿色 (石灰)
#0000FF 在00255 其他纯蓝色的
#FFFF00 时间255 其他255 其他0黄色的
#FF00FF 在255 其他0255 其他红色的
#00FFFF 在0255 其他255 其他 色的
#FFFFFF 在255 其他255 其他255 其他白色的
#000000 没有000黑色的
#808080 年一百二十八一百二十八一百二十八中等灰色
#FF5733 在255 其他8751鲜 的 色红色

CSS还支持4位数 (#RGBA) 和8位数 (#RRGGBBAA) 六进制颜色,其中AA是alpha通道 (00 =透明,FF =不透明).简体形式颜色 (#RGB) 通过重复每个数字来扩展:#F3A = #FF33AA.

网页设计师经常通过修改六进制值来调整颜色. 添加到红色通道会使颜色变暖;减去会使它们变冷. 六进制颜色具有相同的R,G和B值总是产生灰色的阴影. 像#7F7F7F这样的颜色完全是50%的灰色 (每个通道的255分之127).

编程中的魔术:内存地址和比特操作

在系统编程中,hex是内存地址,位标记和硬件寄存器的自然语言.每个在C,C++,汇编或嵌入式系统中工作的程序员都经常遇到hex.

记忆地址:在 32 位系统上,地址范围从 0x00000000 到 0xFFFFFF (4 GB). 常见地址范围: 0x00000000 - 0x00FFFFFF (内存不足), 0x7FFFFFFF (最大正符号 32 位 int), 0x80000000 (符号解释中负空间的开始), 0xFFFFFFFF (最大无符号 32 位). 在 64 位系统上,用户空间通常占用 0x000000000000 - 0x00007FFFFFFFFF.

用六边形面具进行比特操作:比特运算在六边形中自然表达, 因为它们与 边界对齐.

运行情况表达方式影响
设置位数3x 值为 0x08强制比特 3 到 1, 留下其他不变
清除第3位x &= ~0x08强制比特 3 到 0, 保持其他不变
切换位3x^=0x08翻转位数3,其他位数保持不变
检查位3(x和0x08) !=0测试如果位3设置
提取低 咬x和0x0F降低 4 位
提取高 咬(x> 4) & 0x0F获取上方的 4 位字节

著名的六进制常数:程序员已经为调试和初始化创建了难忘的常量:0xDEADBEEF (用于标记旧IBM系统中未初始化的内存),0xCAFEBABE (Java类文件魔术号),0xFEEDFACE (Mach-O二进制格式魔术),0x0BADF00D (内存调试哨兵),0xDEADC0DE (用于iOS崩 检测).这些常量在六进制堆放中显现明确,使其在调试过程中易于发现.

文件格式签名和六边形法医

每个文件格式在开始时都有一个字节的特征序列,称为"魔法数字"或文件签名.六进制编辑器和数字取证工具使用这些签名来识别文件类型,无论文件扩展如何.了解文件签名对于数据恢复,恶意软件分析和数字取证至关重要.

文件类型六进制签名 (第一个字节)ASCII表示
一个JPEG图像其他国家没有.
在 PNG 图像中89 50 4E 47 0D 0A 1A 0A没有.
在PDF文档中25 50 44 46 年%PDF
邮件档案50 4B 03 04 年没有.
图像图像47 49 46 38 年没有.
ELF可执行文件 (Linux)7F 45 4C 46 其他精灵
Windows PE可执行文件4D 5A 其他MZ
MP3 音频FF FB 或 49 44 33或 ID3
SQLite数据库53 51 4C 69 74 65 其他

安全专业人员使用六进制来检查二进制文件而不相信文件扩展名.一个以4D 5A开始的文件名为"document.pdf"实际上是Windows的可执行文件 - 一个常见的恶意软件技巧.网络数据包的六进制分析揭示了协议结构,加密头和潜在的漏洞.

数据基础比较:十进制,二进制,八进制,六进制

计算机使用不同的数字基础用于不同的目的.了解它们之间的关系有助于阅读技术文档,调试和系统编程.

十进制二进制 (基数2)八位数 (基数8)六进制 (基 16)
0没有 000000
8一千个108
101010 年12A
15一百一十一17F
160001 0000 其他2010
640100 0000 年一百个40
一百二十八一千万在20080
255 其他1111 1111 其他第377章FF
美国一万万万万其他一百个
1024 年100 千万 千万在2000年其他

八位数 (基数8) 曾经在计算中很常见 (它出现在Unix文件权限中:chmod 755 = 111 101 101 在二进制中 = rwxr-xr-x). 六位数在大多数用途中取代了八位数,因为每位数4位 (六位数) 与现代8位,16位,32位和64位架构相比,每位数3位 (八位数) 更好.

人们常问的问题

如何在六进制和二进制之间快速转换?

每个六进制数字对应于正确的4个二进制位:0=0000,1=0001,2=0010,3=0011,4=0100,5=0101,6=0110,7=0111,8=1000,9=1001,A=1010,B=1011,C=1100,D=1101,E=1110,F=1111. 转换0xB7:B=1011,7=0111 -> 101101112. 转换110010102:分成零点:1100=C,1010=A -> 0xCA.

为什么CSS颜色使用十六进制?

CSS使用六边形,因为每个RGB频道 (0-255) 恰好适合2个六边形数字 (00-FF).#RRGGBB格式是紧 的,明确的,并且直接映射到显示硬件使用的24位色彩模型.HTML在20世纪90年代初从X11色彩定义中采用了六边形色彩,自那以后,该公约一直是标准.

0xFF 在小数中等于什么?

0xFF = 15x16 + 15 = 240 + 15 = 255. 在二进制中,FF = 1111 1111,这意味着所有8位都已设置. 255是未签名字节的最大值 (uint8),每个RGB颜色通道的最大强度,并且在网络 (255.255.255.255是广播地址) 和计算中不断出现.

0x1F和0xF1的区别是什么?

在二进制中: 0x1F = 0001 1111; 0xF1 = 1111 0001. 位置值很重要,就像十进制中的 19 ≠ 91 一样.

我需要多少个六进制数字来表示一个32位数?

精确8个六进制数字 (因为168=232,涵盖0x00000000至0xFFFFFF的所有32位值).32位系统上的内存地址显示为8位六进制数字.对于64位数字,您需要16个六进制数字 (0x0000000000000000至0xFFFFFFFFFFFF).

在六进制数字中, "0x" 前 是什么意思?

"0x"前 是C语言和大多数编程语言中使用的一种符号规范,用于表示下面的数字是十六进制的. "0x"代表"hex" ('x'表明十六进制). 其他符号:在汇编中尾行'h' (FFh),在CSS和某些上下文中领先'#' (#FF0000),以及在某些旧语言中 ($FF) 的$前 .

如何在IP地址中使用六进制?

IPv4地址 (例如,192.168.1.1) 可以用六进制表示:六进制中的每个八位. 192.168.1.1 = 0xC0 0xA8 0x01 0x01 = 0xC0A80101. IPv6地址已经用六进制写成: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. 这使得IPv6地址操作更容易.

什么是魔术编辑器,我什么时候使用?

六进制编辑器显示和编辑文件作为六进制的原始字节.常用:检查文件格式签名以识别文件类型,编辑二进制游戏保存文件,逆向工程软件,分析网络捕获,从损坏的文件中恢复数据和数字取证.流行的六进制编辑器包括HxD (Windows),hex fiend (Mac) 和xxd (命令行Unix工具).

为什么在计算中使用十进制而不是十进制?

因为计算机以二进制 (基数2) 运行,16=24 - - 六进制与二进制完全对齐. 一个六进制数字=4位,两个六进制数字=1字节 (8位),四个六进制数字=16位,八个六进制数字=32位. 十进制与2的权值没有这样的干净对应,使得六进制更为自然地对二进制数据进行紧 的表达.

如何将六边形颜色转换为RGB值?

将6位数的六进制颜色分为3个2位数组: #RRGGBB. 将每个从六进制转换为十进制. 例如: #4A90E2 -> R=0x4A=74, G=0x90=144, B=0xE2=226. 所以这个颜色是rgb(74, 144, 226) - 一种中等蓝色. 逆转:将每个十进制值转换为2位数六进制和连接: rgb(255, 87, 51) -> #FF5733.

网络和协议中的十六进制

计算机网络广泛使用十六进制.MAC地址 - - 网络接口的硬件标识符 - - 写成6个六进制字节,用两角或连接符隔开:例如,00:1A:2B:3C:4D:5E.前三个字节 (00:1A:2B) 标识制造商 (组织唯一标识符,OUI),而后三个字节 (3C:4D:5E) 标识特定设备.

IPv6地址是128位,表示为8组4个六进制数字:2001:0DB8:AC10:FE01:0000:0000:0000:0000组内领先的零可以省略,连续的全零组可以用"::"压缩,得到2001:DB8:AC10:FE01::对于读取IPv6地址,子网口罩和路由表来说,了解六进制是必不可少的.

以太网 ,IP包,TCP段 - - 在Wireshark等网络分析工具中都具有以六进制表示的字段.一个TCP SYN包显示旗 字段为0x002 (只有SYN位集);一个SYN-ACK显示0x012 (SYN + ACK位集).直接从数据包捕获中读取这些六进制值是一个基本的网络故障排除技能.

唯一码和六进制:字符编码

唯一码 (Unicode) 是通用字符编码标准,为每个字符分配一个以六进制表示的代码点.基本的多语言平面跨越U+0000到U+FFFF.

品格唯一代码点UTF-8编码 (六进制)描述
A美国41拉丁大写字母A
αU+03B1美国 CE B1希腊小字母阿尔法
U+20ACE2 82 电流欧元标志
U+4E2DE4 B8 公元前中文字符"中间"
😀U+1F600 在F0 9F 98 80 年笑脸表情符号
©U+00A9 在C2 A9 其他版权标志

UTF-8将ASCII字符 (U+0000到U+007F) 编码为1个字节,与它们的ASCII值相同.字符U+0080到U+07FF使用2个字节,U+0800到U+FFFF使用3个字节,U+FFFF以外的字符 (如大多数表情符) 使用4个字节.这种可变长度编码,都以六进制表示,这就是为什么理解六进制有助于在Web应用程序中调试文本编码问题.