Solidity

如何在 Solidity 中將 uint 轉換為字節?

  • June 19, 2020

有沒有一種簡單的方法可以將 a 轉換uintbytesSolidity?

現在似乎有了,因為solidity 0.4.24版你可以使用abi.encodePacked

例如:

uint i = 0;
i_bytes = abi.encodePacked(i);

@eth 答案的替代方法是使用彙編:

function toBytes(uint256 x) returns (bytes b) {
   b = new bytes(32);
   assembly { mstore(add(b, 32), x) }
}

這明顯更節省氣體,但取決於 Solidity 編譯器使用的內部儲存器佈局。理論上,這在未來可能會發生變化,但實際上它應該是相當穩定的。

引用自:https://ethereum.stackexchange.com/questions/4170