弊社のアドベントカレンダーも12日目です。弊社の人は弊社のエンジニアブログに書く人が多いですが、僕は弊社を知らないエンジニアにも見てもらいたいのでQiitaに書きました。
改めまして、アラタナの甲斐 です。 普段はバックエンドのプログラマをしております。
よろしくお願いします。
はじめに
この記事で教えること・読むにあたって
記事を読むにあたって前提知識は全く必要有りません、安心してください
ITの勉強をしたことがある人なら知っているであろう2進数
と、皆さんの体に備わっている両手
を使用して 1023
まで数えられる方法を紹介いたします
少し長くなりますが、飛ばし読みでも構いませんので、最後まで読んでいただけると幸いです。
両手
で数を数える
初心者編(両手
で10
まで数える)
あなたは子供の頃、数を数えるときにどのようにして数を数えましたか?
僕はよく両手
を使って数を数えていました。皆さんもそうですよね?
お風呂で10
数えてから出なさい!と母からはよく言われていましたが、両手
がありましたので特に不自由すること無く10
まで数えることが出来ていました
…
……
………
僕が小学生に上がった頃、世はまさにポケモンブーム
ポケモンを数多く言える人はモテモテでした
ただし、ポケモンは151
匹存在し、とてもじゃないですが10
までしか数えられない両手
ではオーバーフローになってしまいとても困っていました。
(繰り上がりの回数を覚えておかないといけないのが大変だった…。)
上級編(両手
で1023
まで数える)
そこで便利なのが2進数
ですよ!
2進数
について少しだけ解説をすると…
皆さんが日常生活で使っている数字は10進数
と呼ばれるもので、1,2,3,4,5,6,7,8,9ときたら次は10になりますよね。桁上りのタイミングが9の次となる数を10進数
と呼びます。
2進数
は、1,10,11,100,101,110,111,1000,1001,1010と数えていくような数を言い、桁上りのタイミングが1の次となる数を2進数
と呼びます。
数を10進数
で数える場合と2進数
で数える場合、以下の表のようになります。
10進数 | 2進数 | 10進数 | 2進数 | 10進数 | 2進数 |
---|---|---|---|---|---|
1 | 1 | 11 | 1011 | 31 | 11111 |
2 | 10 | 12 | 1100 | 32 | 1 00000 |
3 | 11 | 13 | 1101 | 64 | 10 00000 |
4 | 100 | 14 | 1110 | 128 | 100 00000 |
5 | 101 | 15 | 1111 | 256 | 1000 00000 |
6 | 110 | 16 | 10000 | 512 | 10000 00000 |
7 | 111 | 17 | 10001 | … | … |
8 | 1000 | 18 | 10010 | 1021 | 11111 11101 |
9 | 1001 | 19 | 10011 | 1022 | 11111 11110 |
10 | 1010 | 20 | 10100 | 1023 | 11111 11111 |
なんとなくわかってきましたでしょうか…?
指の曲げ伸ばし(曲げた状態を0、伸ばした状態を1)で数を数え、
その指の曲げ伸ばしを2進数
で例えて、
その2進数
を10進数
へ基数変換(※進数の変換のこと)
してあげれば…
両手
で1023
まで数えることができるようになります!!!!おめ
(あの頃の僕に会いに行って両手
で1023
方法を今すぐにでも教えたい…!)
それではクイズです
問題1 次の2進数
(写真の指)を10進数
に変換してください
あなたは突然ダブルピースが現れて解くことが出来ましたか?
解けない方は下の表を活用してみてください。各指が1本だけ伸びた時の10進数
の数の対応表です。
10進数 | 2進数 | 写真の指 |
---|---|---|
1 | 00000 00001 | 右手親指 |
2 | 00000 00010 | 右手人差指 |
4 | 00000 00100 | 右手中指 |
8 | 00000 01000 | 右手薬指 |
16 | 00000 10000 | 右手小指 |
32 | 00001 00000 | 左手小指 |
64 | 00010 00000 | 左手薬指 |
128 | 00100 00000 | 左手中指 |
256 | 01000 00000 | 左手人差指 |
512 | 10000 00000 | 左手親指 |
写真の指は、右手人差指、右手中指、左手中指、左手人差指が伸びている状態で、2進数
で表現すると0110000110です。
2進数
(指の状態)を対応表に当てはめると10進数
は、2、4、128、256になりました。
伸ばしている指の合計値が答えとなります
2+4+128+256=...
A. 390
問題2 次の2進数
(写真の指)を10進数
に変換してください
手、手がつる…
写真の指は、右手人差指、右手薬指、左手小指、左手中指、左手親指が伸びている状態で、2進数
で表現すると1010101010です。
2進数
(指の状態)を対応表に当てはめ、合計すると…
10進数 | 2進数 | 写真の指 |
---|---|---|
2 | 00000 00010 | 右手人差指 |
8 | 00000 01000 | 右手薬指 |
32 | 00001 00000 | 左手小指 |
128 | 00100 00000 | 左手中指 |
512 | 10000 00000 | 左手親指 |
2+8+32+128+512=...
A. 682
いかがでしたか?
皆さんは両手
で1023
まで数を数えることができるようになりましたでしょうか?
多分難しいと思いますので、
両手
で1023
まで数を数えることができるということだけを覚えて帰って、友達に自慢してみてください
今回は皆さんが解るように対応表を使用して基数変換をおこないましたが、対応表は使わなくても計算で解くことができます。基数変換の方法は解説サイトがたくさんありますので、知らない方で知りたい方は是非調べてみてください
…
……
………
僕はこの方法でポケモンの数を151
匹まで数えられるようになりました(大嘘)
どうやら今現在ポケモンの数は739
匹なので、まだまだ数えられますね、1023
匹を越えるようになったら足の指でも使ってみてください