2進数

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動
Wikipedia-logo.pngウィキペディアの生真面目ユーザーたちが二進法の項目をおカタく解説しています。

2進数(にしんすう)とは、1 + 1 = 10 になる、「1」と「0」の2種類のみの記号で表される、数値の表現手法。主にデジタル機器の内部の電気回路で扱う表現。

[編集]

プログラミングする際も、例えばゲームパッドからの入力は、ボタンの箇所は2進数的な表現で取得される。

対応表(例)
対象ボタン
10進数 2進数
何も押していない 0 0000
Aボタン単独 1 0001
Bボタン単独 2 0010
A,Bボタン同時押し 3 0011
Xボタン単独 4 0100
X,Aボタン同時押し 5 0101
X,Bボタン同時押し 6 0110
X,A,Bボタン同時押し 7 0111
Yボタン単独 8 1000
Y,Aボタン同時押し 9 1001
Y,Bボタン同時押し 10 1010
Y,A,Bボタン同時押し 11 1011
Y,Xボタン同時押し 12 1100
Y,X,Aボタン同時押し 13 1101
Y,X,Bボタン同時押し 14 1110
Y,X,A,Bボタン同時押し 15 1111

ビット演算[編集]

Wikipedia-logo.pngウィキペディアの生真面目ユーザーたちがビット演算の項目をおカタく解説しています。

ビット演算を理解するには2進数を理解している事が必要になる。

例えば上の対応表の値を変数「data」で取得させている場合、Bボタンが押されているかどうか判定してそれにより処理が変わる場合は、

if data AND 2 {
   //Bボタンが押されている時の処理
} else {
   //Bボタンが押されていない時の処理
}

のような書き方になる[1]

2進数での小数[編集]

2進数のビットが増えると2倍になっていくように、小数の位置にビットを増やしていくと、値は1/2倍になっていく。

2進数の小数(一例)
10進数 2進数
1 0001.0000
0.9375 0000.1111
0.875 0000.1110
0.8125 0000.1101
0.75 0000.1100
0.6875 0000.1011
0.625 0000.1010
0.5625 0000.1001
0.5 0000.1000
0.375 0000.0111
0.3125 0000.0101
0.25 0000.0100
0.1875 0000.0011
0.125 0000.0010
0.0625 0000.0001
0 0000.0000

2進数での負の数[編集]

2進数で負の数を表す場合、表記上は-1とかでも一応通じるが、電気回路上では最上位のビットで判断する。負の値は1、正の値は0という符号ビットとする。つまり値を格納している箇所は「符号なし整数型」なのか「符号付き整数型」なのか、どのように扱うかで判断が分かれる。

ちなみにこの補数表現は2進法に特有のものではなく任意の進法で表現可能(例えば10進法で8桁を超える位を無視する場合、 -1 = 99999999 と表現できます)。

2進数での負の数(4bit)
10進数 2進数
7 0111
6 0110
5 0101
4 0100
3 0011
2 0010
1 0001
0 0000
-1 1111
-2 1110
-3 1101
-4 1100
-5 1011
-6 1010
-7 1001
-8 1000

16進数[編集]

16進数は、2進数を4ビット毎に区切って表している表現と見る事もできるため、機械語の表現では一般的に使用される。

10進数 2進数 16進数
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

1バイト[編集]

Wikipedia-logo.pngウィキペディアの生真面目ユーザーたちがバイト (情報)の項目をおカタく解説しています。

1バイトは、8ビット。

10進数 2進数 16進数
0 0000 0000 0
1 0000 0001 1
2 0000 0010 2
3 0000 0011 3
4 0000 0100 4
5 0000 0101 5
6 0000 0110 6
7 0000 0111 7
8 0000 1000 8
9 0000 1001 9
10 0000 1010 A
11 0000 1011 B
12 0000 1100 C
13 0000 1101 D
14 0000 1110 E
15 0000 1111 F
16 0001 0000 10
17 0001 0001 11
18 0001 0010 12
19 0001 0011 13
20 0001 0100 14
21 0001 0101 15
22 0001 0110 16
23 0001 0111 17
24 0001 1000 18
25 0001 1001 19
26 0001 1010 1A
27 0001 1011 1B
28 0001 1100 1C
29 0001 1101 1D
30 0001 1110 1E
31 0001 1111 1F
32 0010 0000 20
33 0010 0001 21
34 0010 0010 22
35 0010 0011 23
36 0010 0100 24
37 0010 0101 25
38 0010 0110 26
39 0010 0111 27
40 0010 1000 28
41 0010 1001 29
42 0010 1010 2A
43 0010 1011 2B
44 0010 1100 2C
45 0010 1101 2D
46 0010 1110 2E
47 0010 1111 2F
48 0011 0000 30
あとはお察しください

脚注[編集]

  1. 言語や処理目的によって差異あり。

関連項目[編集]