問題一覧に戻る
初級基本構文
問題14: ビット演算子

Solidityのビット演算子を学習します。これらの演算子はビットレベルで動作します:&(AND)、|(OR)、^(XOR)、~(NOT)、<<(左シフト)、>>(右シフト)。ビット演算は数値の2進表現に対して実行されます。フラグ、権限管理、最適化された計算に非常に効率的で便利です。左シフトは2の累乗で乗算し、右シフトは2の累乗で除算します。これらの演算子はガス効率の良いスマートコントラクト開発に不可欠です。

pragma solidity ^0.8.0;

contract BitwiseOperators {
// ビットAND演算
function bitwiseAnd(uint8 a, uint8 b) public pure returns (uint8) {
return a b;
}

// ビットOR演算
function bitwiseOr(uint8 a, uint8 b) public pure returns (uint8) {
return a b;
}

// ビットXOR演算
function bitwiseXor(uint8 a, uint8 b) public pure returns (uint8) {
return a b;
}

// ビットNOT演算
function bitwiseNot(uint8 a) public pure returns (uint8) {
return a;
}

// シフト演算(左シフト、右シフト)
function shiftOperations(uint8 num) public pure returns (uint8, uint8) {
return (num 2, num 1);
}
}