まず2^nのテーブルを用意。
テーブルを元に例として428を2進数に変換してみる
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
428の一つ低い256を1にして引く
428-256=172
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
172よりひとつ低い128を1にして引く
172-128=44
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
44よりひとつ低い32を1にして引く
44-32=12
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
12よりひとつ低い8を1にして引く
12-8=4
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
4を1にして4-4=0で終了
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
428=110101100となります。
ちなみに両手の指で数えられる数は10までが常識ですが、2進法で数えれば2^10=1024
0を除いて1-1023まで数えられます。
実用的かどうかは置いといて2進法を両手で使いこなせたらカッコいいですね。
- 関連記事
-
-
サブネッティング 2014/10/12
-
IPアドレス 2014/10/11
-
2進数と10進数の変換方法メモ 2014/10/11
-
SLA(Service Level Agreement) 2014/10/09
-
デュプレックス 2014/10/09
-