問題一覧に戻る
初級基本構文
問題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);
}
}