Erc-1155

為什麼在 ERC 1155 實施中使用 BITWISE &

  • October 10, 2021

我試圖理解為什麼在 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_BITNF_INDEX_MASK並且TYPE_MASK被用作位標誌或位遮罩。

這樣他們就可以在一個uint256 _id.

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