Erc-1155
為什麼在 ERC 1155 實施中使用 BITWISE &
我試圖理解為什麼在 ERC 1155 實現中使用 BITWISE AND (&) 運算符而不是 LOGICAL AND (&&) 運算符。
連結 - https://github.com/enjin/erc-1155/blob/master/contracts/ERC1155MixedFungible.sol
為了更清楚起見,我也在此處說明程式碼。
如果有人可以在範例的幫助下進行解釋,那就太好了。
function isNonFungible(uint256 _id) public pure returns(bool) { return _id & TYPE_NF_BIT == TYPE_NF_BIT; } function isFungible(uint256 _id) public pure returns(bool) { return _id & TYPE_NF_BIT == 0; } function getNonFungibleIndex(uint256 _id) public pure returns(uint256) { return _id & NF_INDEX_MASK; } function getNonFungibleBaseType(uint256 _id) public pure returns(uint256) { return _id & TYPE_MASK; }
他們這樣做是因為值被操縱
TYPE_NF_BIT
,NF_INDEX_MASK
並且TYPE_MASK
被用作位標誌或位遮罩。這樣他們就可以在一個
uint256 _id
.