十六进制计算器
增加,减去和转换十六进制数字. 执行十六进制算法并转换成十进制或二进制. 免费的数学计算器. 立即获得结果.
了解十六进制 (基础-16):基础
十六进制 (hex) 是一个基数16的位数系统.它使用16个不同的符号:数字0 - 9表示0到9的值,字母A - F (或a - f) 表示10到15的值.一个十六进制数字代表正好四个二进制比特 (一个" 嘴"),使十六进制成为以人类可读格式表示二进制数据的最自然方法.
每个六进制数字的位置值是16的权值.对于六进制数字2F4:
- 2 在162 (256) 位置: 2*256=512
- F (15) 在161 (16) 位置: 15×16=240
- 4 在 160 (1) 位置: 4 x 1 = 4
- 总数:512+240+4=756 十进制
将十进制数字转换为六进制数字:重复除以16并记录剩余数 (最右边的数字首先). 756 ÷ 16 = 47 R 4; 47 ÷ 16 = 2 R 15 (F); 2 ÷ 16 = 0 R 2. 读剩余数向上: 2F416 . 在大多数编程语言中,六进制文字的前 是0x: 0x2F4=756个
六进制到十进制的转换表
用于将单个六进制数字和常见的六进制值转换为十进制的快速参考:
| 一个魔鬼 | 十进制 | 二进制 | 常见含义 |
|---|---|---|---|
| 没有. | 0 | 0000 其他 | 没有字节,错误,关闭 |
| 第01集 | 1 | 00000001 其他 | 是的,启用 |
| 没有. | 10 | 0000 1010 其他 | 新行字符 (LF) |
| 没有. | 13 | 0000 一百一十一 | 运输返回 (CR) |
| 0x1F | 31 | 0001 1111 年 月 日 | 单元分离器 |
| 0x20 时间 | 32 | 0010 其他 | 空间字符 (ASCII) |
| 第四十一集 | 65 | 0100 0001 其他 | 在ASCII中"A" |
| 第61集 | 97 | 0110 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 其他 | 0 | 0 | 纯红色 |
| #00FF00 没有 | 0 | 255 其他 | 0 | 纯绿色 (石灰) |
| #0000FF 在 | 0 | 0 | 255 其他 | 纯蓝色的 |
| #FFFF00 时间 | 255 其他 | 255 其他 | 0 | 黄色的 |
| #FF00FF 在 | 255 其他 | 0 | 255 其他 | 红色的 |
| #00FFFF 在 | 0 | 255 其他 | 255 其他 | 色的 |
| #FFFFFF 在 | 255 其他 | 255 其他 | 255 其他 | 白色的 |
| #000000 没有 | 0 | 0 | 0 | 黑色的 |
| #808080 年 | 一百二十八 | 一百二十八 | 一百二十八 | 中等灰色 |
| #FF5733 在 | 255 其他 | 87 | 51 | 鲜 的 色红色 |
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.
用六边形面具进行比特操作:比特运算在六边形中自然表达, 因为它们与 边界对齐.
| 运行情况 | 表达方式 | 影响 |
|---|---|---|
| 设置位数3 | x 值为 0x08 | 强制比特 3 到 1, 留下其他不变 |
| 清除第3位 | x &= ~0x08 | 强制比特 3 到 0, 保持其他不变 |
| 切换位3 | x^=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 年 | |
| 邮件档案 | 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 | 没有 0000 | 0 | 0 |
| 8 | 一千个 | 10 | 8 |
| 10 | 1010 年 | 12 | A |
| 15 | 一百一十一 | 17 | F |
| 16 | 0001 0000 其他 | 20 | 10 |
| 64 | 0100 0000 年 | 一百个 | 40 |
| 一百二十八 | 一千万 | 在200 | 80 |
| 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+20AC | E2 82 电流 | 欧元标志 |
| 中 | U+4E2D | E4 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应用程序中调试文本编码问题.