●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

数値をビット単位で操作する!「ビット演算(&、|、^、~、<<、>>)」をやさしく解説

C言語では、数値の中身(ビット単位)を直接操作するビット演算が可能です。
&, |, ^, ~, <<, >> などの記号を使って、より細かい制御ができるようになります。

ビット演算とは?

ビット演算とは、整数値を2進数として見て、ビット単位で演算する方法です。
フラグの管理、効率的な数値計算、ハードウェア制御などに活用されます。

基本のビット演算子一覧

演算子 意味 例(2進数) 結果
& AND(両方1なら1) 1100 & 1010 1000
| OR(どちらか1なら1) 1100 | 1010 1110
^ XOR(異なれば1) 1100 ^ 1010 0110
~ NOT(反転) ~1100 0011(※符号に注意)
<< 左シフト(nビット左へ) 0001 << 2 0100(4)
>> 右シフト(nビット右へ) 0100 >> 1 0010(2)

例:AND演算(&)でビットを取り出す

int value = 0b1011;    // 2進数(11)
int mask  = 0b0010;    // 2番目のビットを確認

if (value & mask) {
    printf("ビット1が立っています\n");
}
    

例:OR演算(|)でビットをセットする

int flags = 0b0001;
flags = flags | 0b0100;  // 3番目のビットをON
// flags == 0b0101
    

例:XOR演算(^)でビットの反転

int val = 0b1100;
val = val ^ 0b0100;  // 2番目のビットを反転
// val == 0b1000
    

例:左シフト・右シフト

int x = 1;
int y = x << 3;  // 1を左に3ビット → 8(1×2^3)
int z = y >> 2;  // 8を右に2ビット → 2(8÷2^2)
    

ビット演算の用途

  • フラグ管理(ON/OFFの切り替え)
  • 高速な掛け算・割り算(2のべき乗)
  • ハードウェア制御やシリアル通信
  • 整数の効率的な記憶・圧縮

注意点

  • 符号付き整数のビット反転は注意(マイナスになる)
  • 桁あふれに気をつける(シフトしすぎ)
  • 1 << n は「n番目のビットをON」にするテクニック

まとめ

ビット演算は、数値の中身をビット単位で制御する強力なテクニックです。
初心者の方はまず、&, |, ^ を使ったフラグ操作の練習から始めてみると、C言語の理解がグッと深まります!

 

C言語関連用語集

−−−−−  C言語  −−−−−

C言語のスタート地点「main関数」とは?初心者向けにやさしく解説

画面に文字を表示する「printf関数」とは?初心者向けにやさしく解説!

ユーザーから値を受け取る「scanf関数」とは?初心者向けにやさしく解説!

データを入れて使いまわす「変数(variable)」とは?C言語の基本をやさしく解説

データの種類を決める「データ型」とは?C言語の基本をやさしく解説!

計算や比較に使う「演算子」とは?C言語の基本を初心者向けにやさしく解説!

条件に応じて動きを変える「if / else」とは?C言語の基本をやさしく解説!

同じ処理を何度も行う「繰り返し処理(for / while / do-while)」をやさしく解説!

処理をまとめて再利用!「関数(function)」とは?C言語の基本をやさしく解説

関数の「答え」を返す!C言語の基本「戻り値(return)」をやさしく解説

アドレスを扱う魔法の道具「ポインタ(pointer)」とは?C言語の基本をやさしく解説

関数に値を渡す2つの方法「値渡し」と「参照渡し」って何?C言語の基本をやさしく解説!

データをまとめて扱う「配列(array)」とは?C言語の基本をやさしく解説!

複数の文字をまとめて扱う「文字列(string)」とは?C言語の基本をやさしく解説!

異なるデータをまとめて管理!C言語の「構造体(struct)」をやさしく解説

1つのメモリを共有する「共用体(union)」とは?C言語の特徴的な機能をやさしく解説!

状態や選択肢を名前で管理!C言語の「列挙型(enum)」をやさしく解説

ポインタでメモリを自在に操る!C言語の「ポインタ演算」をやさしく解説

実は似ている!?C言語の「ポインタと配列の関係」をやさしく解説!

必要な分だけメモリを使う「動的メモリ確保(malloc / free)」とは?C言語の基本をやさしく解説!

C言語でよく使う「標準ライブラリ(stdio.h, stdlib.h, string.h)」をやさしく解説!

C言語でファイルを読み書き!「ファイル操作(fopen, fclose, fprintf など)」をやさしく解説

コードの中でよく使う「マクロ(#define)」とは?C言語の基本をやさしく解説!

C言語の裏側で活躍する「プリプロセッサ(#include, #ifdef など)」とは?

プログラムを実行できる形に変換!「コンパイル(gccなど)」とは?C言語の基本をやさしく解説

複数の部品をひとつにまとめる!「リンカ(linker)」とは?C言語の基本をやさしく解説

初心者が知っておきたい「エラーと警告」の基本(コンパイルエラー・実行時エラーなど)

ポインタの初期化と安全確認に!「NULLポインタ」とは?C言語の基本をやさしく解説

プログラムのメモリの仕組み「スタック / ヒープ」とは?C言語の基本をやさしく解説!

数値をビット単位で操作する!「ビット演算(&、|、^、~、<<、>>)」をやさしく解説