0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2進数・16進数を「ビット」と「カラーコード」で読む|ITパスポート範囲をPythonで確かめる

0
Posted at

ITパスポートで出てくる「2進数・16進数」は、実務でも、ビット演算やカラーコードとして、毎日のように目にします。試験の内容を、短いPythonのコードで確かめながら整理します。

2進数と10進数

2進数の各けたは、右から 1、2、4、8、16… を表します。

>>> int("1101", 2)      # 2進数 → 10進数
13
>>> bin(13)             # 10進数 → 2進数
'0b1101'

手計算では、1101 = 8 + 4 + 0 + 1 = 13 です。

16進数は、2進数の4けたをまとめたもの

16進数の1けたは、2進数の4けたに当たります。0〜9のあとは、A=10、B=11、C=12、D=13、E=14、F=15 です。

>>> int("1F", 16)
31
>>> format(31, "08b")   # 8けたの2進数にそろえる
'00011111'

「1F」は、1 × 16 + 15 = 31 です。2進数では、0001 1111 で、4けたずつ区切ると、16進数の1けたに対応します。

カラーコードで確かめる

Webの色指定「#FF8800」は、赤・緑・青を、それぞれ16進数の2けた(0〜255)で表したものです。

>>> int("FF", 16), int("88", 16), int("00", 16)
(255, 136, 0)

赤が255(最大)、緑が136、青が0なので、オレンジ色になります。

ビット演算(AND・OR・XOR)

試験の「論理演算」は、ビットごとの演算として、そのまま使えます。

>>> a, b = 0b1101, 0b0110
>>> format(a & b, "04b")   # AND: 両方1のところだけ1
'0100'
>>> format(a | b, "04b")   # OR: どちらか1なら1
'1111'
>>> format(a ^ b, "04b")   # XOR: 違うときだけ1
'1011'

実務では、ANDを「マスク」として、特定のビットだけを取り出すときに使います(権限のフラグなど)。

試験での見方

  • 2進数 → 10進数: 右から1、2、4、8…を、1のところだけ足す
  • 16進数 → 2進数: 1けたを、4けたの2進数に直す
  • A〜Fは、10〜15

注意

試験の範囲や仕様は、変わることがあります。受験する時期の出題範囲は、IPAの公式サイトで確認してください。

この記事の文章作成には、AIを活用しています(コードの結果は、筆者が確認しています)。

もう少し、たとえ話でやさしく読みたい方は、こちらもどうぞ(無料)。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?