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?

バイナリの読み方 その1

0
Last updated at Posted at 2026-03-02

バイナリとはbinaryである。

”bi” というprefixが付いた英単語は ”二つの” という意味がある。

  • bicycle ”チャリ”
  • bisexual ”バイセクシャル”
    同じようにbinaryも二つの状態を表すものである。

コンピューターは2進数で情報を扱う

画面にはたくさんの文字が表示されている。
しかし、コンピューターは文字を直接扱うことはない。
テレビ番組 トリビアの泉 内のコーナーに トリビアの種 がある。
トリビアの種では視聴者から寄せられたお便りをもとに、どれぐらいのインパクトのトリビアが生まれたのか主宰のタモリ氏が評価を行っていた。

「ご覧ください。満開です。」

この時のあれである。
Untitled.jpg

このスタジオ内には1枚の "満開" と書かれた巨大なパネルは存在しない。
画像を見る限りでは9×9枚のパネルが整列し一つの絵を作り出している。

コンピューターで文字を表示する際も同じである。
マシンの中には ”あ””A” といった文字はどこにもない。
すべての文字はマシンで扱うために文字コードという番号が割り当てられる。

元の文字 文字コード UTF-8
A 01000001
11100011 10000001 10000001

あくまでイメージだが、マシンはこの文字コードをもとにパネルをガッチャンコして表示しているということだ。
ちなみに我々が普段使用しているコンピューターの中では ”0””1” しか登場しない。

2進数である。
2進数には無駄がない。

指で数を数えてみよう。
両手の指を合わせて10まで数えられる。

この数え方は実に無駄である。

立てた指の本数で数を表すのは実に非効率である。

全部3本.png
実にもったいない。
我々はハンドサインで多様な表現ができるのだ。
このサイン一つひとつに数を割り当てたら効率が良いのではないのだろうか。


親指から小指まで役割をふってみよう。

1.png

立てた指に割り振られた数を足すようにする。

2.png

今まではただ立てた指の本数を数えるだけだったが、各指に役割を与えることでよりたくさん数えることができるようになった。

この数え方は2進数の指折り法と呼ばれるものである。
詳しい手法の解説はこちらを参照されたし

手で数を数える際に2進数を使用すると片手で31まで数えることができるようになる。

じゃあ両手を使えば62までいける?

62どころではない、1023まで数えることが可能である。
実際にそこまで数えることはないが、それだけの威力を持っているのである。

そして16進数へ

もう一度、先の文字コードを見てみよう。

元の文字 文字コード UTF-8
A 01000001
11100011 10000001 10000001

目がチカチカするのである。
ヒトの目で瞬時に把握できる数は4から5個といわれている。
それ以上の数を把握するには頭の中で数えながら指でなぞる必要がある。

ちなみにチンパンジーは瞬時に20個程度の数を把握できるといわれている。
アダムとイブがリンゴではなくバナナを食べていればこんなことにはならなかった。

同じデータでも人の目で理解しやすくするために、2進数を4ケタごとに区切って文字を割り当てる16進数を導入する。
16進数では ”0~9”までの数字”A~F”までの英字 を組み合わせて数を表現する。

注意
何進法で記述されたのかを判別できるように

  • 0x(16進数の場合)
  • 0b(2進数の場合)

を追記する慣習がある

10進数 2進数 16進数 memo
1 0b0001 0x01
2 0b0010
(桁上がり)
0x02
3 0b0011 0x03
4 0b0100
(桁上がり)
0x04
5 0b0101 0x05
6 0b0110 0x06
7 0b0111 0x07
8 0b1000
(桁上がり)
0x08
9 0b1001 0x09
10
(桁上がり)
0b1010 0x0A
11 0b1011 0x0B
12 0b1100 0x0C
13 0b1101 0x0D
14 0b1110 0x0E
15 0b1111 0x0F 2進数の4桁を16進数では1桁で表せる
16 0b10000
(桁上がり)
0x10
(桁上がり)

bit(ビット)とbyte(バイト)

生物の最小構成単位が細胞であるようにコンピューターが扱う情報にも最小の単位が存在する。
それがbitと呼ばれるものである。

表現方法
1bitは1桁の2進数で表現され、 "0""1" の2パターンを表すことができる。
2bitでは "00""01""10""11" の4パターンを表すことができる。

このようにbit増えれば増えるほど表現できる値も多くなる。
コンピューターで数字のほかに、アルファベットや記号などを扱えるようにすれば英語圏では動作に支障はほぼない。

種類 文字 個数
英小文字 a ~ z 26
英大文字 A ~ Z 26
数字 0 ~ 9 10
記号 $ @ { ... 32
制御文字 <DEL> <ESC> 33
127

以上から 127種類の文字 を2進数で表すためには 7bit あれば表現が可能だ。

2^7 = 128

さらに1bit余裕を持たせた "8bit" が一つの基準となっている。
ちなみに1bit増えるだけで

2^8 = 256

256通りまで表現できるようになる。
コンピューターは8bitで一つのまとまりとすることが非常に多いため、8bitを1byte(バイト)とまとめるようになった。

16進数とbyte

8bitを1byteとしたことで、16進数での表示が非常に美しくなる。
例えばひらがなの "ね" の文字コード111000111000000110101101を例に見てみよう。

  1. まずは4桁ごとに区切る 1110 0011 1000 0001 1010 1101
  2. 各4桁を10進数に変換 1110(14) 0011(3) 1000(8) 0001(1) 1010(10) 1101(13)
  3. 変換した数字を10進数を16進数に変換14(E) 3(3) 8(8) 1(1) 10(A) 13(D)

0b111000111000000110101101 を変換することで 0xE381ADへ変換することができた。

まとまりを意識する。
16進数の1桁分は4bitに対応する。
つまりE381ADE3 81 ADと分けて3byteであることがわかる。

たった2桁で1byteを表すことができるのである。

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?