基本情報技術者試験の勉強をしていると、
n AND 000F₁₆
という式が出てきます。

ハク
F って何!? 急にアルファベットが出てきて混乱する…!

レイ
16進数では A 〜 F も数字の一部です。今日はそこを分かりやすく説明しましょう。
16進数の F は 10進数の 15
16進数では次のように表します。
| 10進数 | 16進数 |
|---|---|
| 10 | A |
| 11 | B |
| 12 | C |
| 13 | D |
| 14 | E |
| 15 | F |
つまり、
F = 15
です。
F を2進数で表すと?
10進数の 15 を2進数にすると、
1111₂
になります。
ちなみに、2は2進数で表記していますということです。
つまり、
F₁₆ = 1111₂
です。
000F₁₆ とは?
000F₁₆
を2進数にすると、
0000 0000 0000 1111₂
となります。
最後の4ビットだけが 1 になっています。
AND演算とは?
AND は、両方が 1 のときだけ 1 になります。
| A | B | A AND B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
n AND 000F₁₆ の意味
これは
一番右の4ビット(= 16進数1桁)だけを取り出す
という意味です。
具体例:n=9A7C₁₆
9A7C₁₆
の一番右の1桁は C です。
2進数で見ると
9A7C = 1001 1010 0111 1100
000F = 0000 0000 0000 1111
--------------------------------
結果 = 0000 0000 0000 1100
1100₂ は 16進数で C。
つまり、
9A7C AND 000F = C
となります。
イメージで覚える
9 A 7 C
□ □ □ ✓
一番右の1文字だけ見えるマスクだと思えばOKです。
よく使うマスク一覧
| マスク | 意味 |
|---|---|
| 000F | 最後の1桁 |
| 00FF | 最後の2桁 |
| 0FFF | 最後の3桁 |
試験での使われ方
例えば
x ← n AND 000F₁₆
と書かれていたら、
「n の一番右の16進数1桁を x に取り出す」
という意味になります。

ハク
F = 1111 だから、4ビット全部見せてくれるんだね!

レイ
その通りです。000F は、一番右の1桁を取り出すための定番マスクです。
まとめ
- F は 16進数で 15
- 2進数では
1111 000F₁₆は0000 0000 0000 1111₂n AND 000F₁₆で最後の1桁だけ取り出せる
一言で覚えるなら
F は「4ビット全部見せる数字」!
この考え方が分かると、ビット演算の問題がぐっと解きやすくなります。
このFが私はわからず、もやもやしていました。
意味が分かるとこんなに簡単なことなんだとなりますよ✨


コメント