ビットとバイトと2進数
目次
はじめに
プログラミングの勉強をしてみようと思って参考書を開いてみたのですが、私はコンピュータ全般の知識が不足しているようで専門用語がわかりませんでした。
どうしようかと調べてみたところ、基本情報技術者という資格の勉強をすることで、コンピュータ全般の基礎知識が手に入るということがわかりました。
というわけで、こちらの勉強から始めていこうかと思います。
ただ、資格の取得が目的ではありませんので、私の独断で不要と判断したところは省いて行きます。
しかし、初めから理論ばかりでちょっと嫌になってきました……。
要点まとめ
ビット(bit)
- コンピュータの扱える情報の最小単位で、0と1という2つの状態を表す事ができます。
- 実際にはコンピュータ内部にある、素子の電気的な状態の変化を、0(低い電圧)と1(高い電圧)に対応させて考えているだけです。
- bitはbinary digit(2進数)の略で、2進数の1桁を表しています。
バイト(byte)
- 8ビットの事です
- 2通りの状態を表せるビットを8個まとめて考えると、2×2×2×2×2×2×2×2=256通りの状態(組み合わせ)を扱えることになります。
10進法(0d)--- decimalのd
- 私たちが普段使っている数の表現方法で、0から9までの数字を扱います。9の次は桁が繰り上がって10になります。また、10進法であらわされた数字を10進数といいます。
- 10進数を表す記号として、数字の前に0dを付けます。
例:0d123(10進数で123を表す) - 10進数は記号を省略することもできます。
例:123
2進法(0b)--- binaryのb
- 0と1の二つの数字だけで数を表現する方法の事です。2進法であらわされた数字を2進数といいます。
- 2進数は数字の前に0bの記号を付けます。
例:0b10(10進数で2を表す) - 2という数字は使用できません。2を2進数で表す場合は、桁が繰り上がって0b10になります。
0:0b0
1:0b1
2:0b10(桁が繰り上がる)
3:0b11
4:0b100(桁が繰り上がる) - コンピュータは0と1の情報しか扱えません。ですので、2進法で数を表現することになります。
16進法(0x)--- hexadecimalのx
- 0~9の数字とA~Fの文字を使用して数を表現する方法の事です。
- 1桁で0~Fまでの16通りを表現できます。
- 16進数は数字の前に0xの記号を付けます。
0:0x0
1:0x1
2:0x2
3:0x3
4:0x4
5:0x5
6:0x6
7:0x7
8:0x8
9:0x9
10:0xA
11:0xB
12:0xC
13:0xD
14:0xE
15:0xF
16進数でビットの状態を見る
- コンピュータは0と1の情報しか扱えません。しかし、このままビットの状態を羅列して表すと桁が多くなり非常に見にくいです。
11110000
11001100
10101010
00001111 - そこで16進数で表すと、桁が少なくなり見やすくなります。先ほどのビット状態を16進数で考えてみましょう。4ビットが1桁に対応しますので、1バイトは2桁で表せます。
1111 0000:0xF0
1100 1100:0xCC
1010 1010:0xAA
0000 1111:0x0F - 16進数で計算をするわけではありません。今のところはビットの状態を見やすくするだけです。
- 16進数とビットの対応表を記載します。
0x0:0000
0x1:0001
0x2:0010
0x3:0011
0x4:0100
0x5:0101
0x6:0110
0x7:0111
0x8:1000
0x9:1001
0xA:1010
0xB:1011
0xC:1100
0xD:1101
0xE:1110
0xF:1111
練習と確認
確認してみましょう。
- ビットとは何ですか?
- バイトとは何ですか?
- 1バイトで何通りの状態(組み合わせ)を扱えますか?
- 2バイトで何通りの状態(組み合わせ)を扱えますか?
- 次のビット列を1バイト毎に16進数で表してください。
コンピュータの扱える情報の最小単位で、0と1の二つの状態を表せます。
二進数の1桁の事です。
8ビットの事です。
1バイトは8ビットです。つまり、組み合わせは2の8乗=256通りになります。
2バイトは16ビットです。つまり、組み合わせは2の16乗=65536通りになります。
10010100 11110010 01011000 00000110
0x94 0xF2 0x58 0x06
疑問と考察
実際のところ2進数と16進数の対応は、表やツールを使えばよいので無理に覚える必要はなさそうですね。
おわりに
2進数は普段使用しないため、かなり難しく感じます。これ、負の数や小数はどう表現するのでしょうか。次回はその辺を勉強することになりそうですね。
とにかく、コンピュータは0と1という状態しか扱えないことがわかりました。この最小情報単位の1ビットを集積してアプリなどが作られていると考えると、凄まじいの一言ですね。