在探索以太坊乃至整个区块链世界的奇妙旅程中,你一定会遇到一串串看起来杂乱无章、由数字和字母组成的代码,比如一个以太坊地址 0x742d35Cc6634C0532925a3b844Bc9e7595f8dE2c,或者一个交易哈希 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060,这些看似神秘的字符串,正是以太坊的“通用语言”——十六进制。
理解十六进制,就像是拿到了一把打开以太坊技术核心的钥匙,它不仅仅是一种编码方式,更是连接人类可读信息与机器可执行指令的桥梁。

我们日常生活中最常用的计数系统是十进制,它基于数字0-9,每一位的权值是10的幂,数字 123 代表 1*10² 2*10¹ 3*10⁰。
而十六进制,简称“Hex”,是基于数字0-9和字母A-F的计数系统,它的每一位权值是16的幂,字母A-F分别代表十进制的10-15。
| 十进制 | 十六进制 | 十进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 8 | 8 |
| 1 | 1 | 9 | 9 |
| 2 | 2 | 10 | A |
| 3 | 3 | 11 | B |
| 4 | 4 | 12 | C |
| 5 | 5 | 13 | D |
| 6 | 6 | 14 | E |
| 7 | 7 | 15 | F |
为什么计算机和区块链领域如此偏爱十六进制呢?这源于计算机的底层架构——二进制,计算机所有信息最终都由0和1的序列(比特)表示,但二进制序列过于冗长,难以阅读和书写,十六进制恰好是二进制的完美“压缩包”,因为1位十六进制数可以精确地表示4位二进制数。

二进制数 1110 1111 可以直接转换为十六进制的 EF,这种一一对应的关系使得十六进制在表示二进制数据时既简洁又精确。
在以太坊生态中,十六进制无处不在,它扮演着至关重要的角色。
以太坊地址

这是最常见的应用,每一个以太坊账户都有一个唯一的地址,用于接收和发送ETH及代币,这个地址就是以 0x 开头的40位十六进制字符串(长度为42,包括 0x 前缀)。
0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B0x:这是一个以太坊的通用前缀,表明该字符串是一个以太坊地址或其它数据类型的十六进制表示。交易哈希
当你发起一笔以太坊交易后,会得到一个交易哈希值,这串独特的64位十六进制字符串(加上 0x 前缀为66位)是这次交易的“身份证号”。
0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b220600x:前缀。智能合约与ABI
智能合约是以太坊的灵魂,当与智能合约交互时,无论是调用函数还是读取数据,都离不开十六进制。
transfer(address,uint256))计算出一个4字节的十六进制值,即“函数选择器”,这个值会放在交易数据的前4个字节,告诉EVM应该执行哪个函数。区块与交易数据
以太坊上的每一个区块和其中的每一笔交易,其原始数据都是以十六进制格式存储和传输的,开发者使用工具(如Web3.js或ethers.js)与以太坊节点交互时,接收到的底层数据往往是十六进制格式的,需要进一步解析才能变成人类可读的信息。
0x 前缀和十六进制格式已成为以太坊及整个以太坊虚拟机生态的黄金标准,确保了不同工具和平台之间的兼容性。