两者都是big-endian。在EVM中,存储器在32字节块/缓冲器中进行处理。因此,即使您的数据类型是
uint8
或
uint32
它仍然被管理为
uint256
价值观
占用32字节
).
0x0000000000000000000000000000000000000000000000000000000000000045 == 69n
0x4500000000000000000000000000000000000000000000000000000000000000 == 31209586552245380797759367053122912663576675554410933276260051939632835723264n
这就是整数的存储方式,即使字节中的位也固定在右边:
00000011 === 3
Strings
是从左到右的简单内存缓冲区。有一些与EVM相关的事情需要记住——就像所有事情一样
strings
也被保存到32字节的块中。因此,如果字符串的长度只有5个字节,那么之后会得到零。如果长度较大,那么在第一个块中,您只获得字符串值的长度(也可以根据长度进行右锚定
uint256
),之后的块保持实际的字符串数据。
大/小端序不仅与数据的锚有关,还与字节顺序有关:
30 45
45 30