0Pricing
Zig Academy · レッスン

ビット演算子

AND、OR、XOR、NOT、シフトを扱います。

「ビット演算子」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。

ビットまで掘り下げる

すべての整数は、実際にはビットが並んだものです。ビット演算子を使えば、丸めや途中の算術処理なしに、個々の0と1を直接操作できます。

ビット単位のAND

&演算子は、両方の入力が1になっている位置のビットだけを残します。不要なビットをマスクして取り除く、古典的な方法です。

const masked = value & 0x0F;

ビット単位のOR

|演算子は、どちらか一方の入力が1になっている位置のビットを1にします。ほかの部分に影響を与えず、特定のフラグだけをオンにするために使います。

const withFlag = value | 0b0010;

ビット単位のXOR

^演算子は、入力が異なる位置のビットだけを1にします。フラグの切り替えや、2つのパターンの比較に便利です。

const toggled = value ^ 0b0001;

ビット単位のNOT

単項~演算子は、すべてのビットを一度に反転します。1は0に、0は1になります。これにより、値の補数が作られます。

const inverted = ~flags;

左シフト

<<演算子は、ビットを上位側へ移動し、空いた部分を0で埋めます。符号なしの値を1ビット左にシフトするたびに、値は2倍になります。

const doubled = x << 1;

右シフト

>>演算子は、ビットを下位側へ移動します。符号なし整数では、1ビット右にシフトするたびに値が半分になります。

const halved = x >> 1;

マスクによるビットの読み取り

ANDとマスクを組み合わせると、ビットがセットされているかをテストできます。value & maskが0以外なら、そのフラグはオンです。0ならオフです。

const isSet = (value & mask) != 0;

セットとクリア

マスクをORしてビットをセットし、反転したマスクをANDしてビットをクリアします。これらを組み合わせることで、各フラグを正確に制御できます。

const cleared = value & ~mask;

シフト量はチェックされます

Zigでは、型が保持できる範囲を超えてシフトすることはできません。範囲外のシフト量は、黙って不正な値になるのではなく、定義されたエラーになります。

ビットが重要な理由

ビット演算は、フラグ、権限、ハードウェアレジスタ、コンパクトなデータを支えています。1つの数値に複数のtrueまたはfalseの答えを保存できます。

クイックチェック

2つの入力が異なる場合にだけビットをセットしたいとします。どの演算子を使いますか?

まとめ:ビットを自在に扱う

これで&, |, ^, ~と、シフト演算子の<<および>>を使って、ビットの読み取り、セット、クリア、移動を完全な精度で行えるようになりました。⚙️

よくある質問

「ビット演算子」レッスンは無料ですか?

はい。「ビット演算子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。

「ビット演算子」で何を学びますか?

AND、OR、XOR、NOT、シフトを扱います。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Zig Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「ビット演算子」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このZig Academyレッスンでコードを書いて実行できますか?

はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 算術演算子と比較演算子
  2. オーバーフロー:+、+%、+|の違い
  3. ビット演算子
  4. ブール論理と短絡評価
← Zig Academyに戻る