ご覧のページは 3 / 7 です。先頭ページはこちら。
【2進数】囚われの10を2に変えるだけ。
小学校で習って高校までまったく疑問を持たない10進数は『10に囚われている』と言いました。2進数は『2に囚われれば』いいだけです。
10種類の数字を使う-> 2種類の数字を使う
10nの位 -> 2nの位
10進数の『10』を『2』に置き換えて考える。
『10という数字にこだわらないで!一番大きい玉だと思って!』と言ったのは、10を忘れることをしつこく言いたいから。10や2を大きい玉だと思えば、何進数だろうが関係ありません。
大きい玉の大きさが9であったり1であったり、はたまた15になるだけなので。
この大きい玉の大きさ+1のことを底(てい)や基数(きすう)といいます。(累乗で使う用語。)
訂正
図の『2n倍膨らむ』にどこから?がありません。図の説明なら1の位が基準です。
2(現在の位は基準から何個離れてるか?)になる。
左隣なら2倍、その左隣なら4倍。右隣は2-1(1 / 2 )、その右隣は2-2(1 / 4)になる。
2進数はコンピュータの考え方。10進数は人間の考え方
ボクが高校のころはN進数というものを習った記憶がありません。ある年代以上は多いんじゃないでしょうか?
2進数の考え方はパソコンやスマホなどコンピュータの基本中の基本です。最近は情報系の科目が普通科でもあるらしく、高校数学で教えているみたい。
さっき『みんな10年間くらい "10" に囚われている』と言いましたが、人間は数の考え方で10にこだわるようになっています。囚われるように教えるのが悪いんじゃなくて、現実世界に一番合っている教育。
ただコンピュータの世界はちがいます(というよりデジタル情報)。デジタルでは10のところが2に変わります。
人間が10にしっくりくるようにデジタル世界では2がしっくりくるようになってる。デジタルはすべてのものを0と1で表現するから。
プログラマーやシステムエンジニアなどは、人間世界とデジタル世界を結ぶ翻訳家みたいなもの。
デジタル語(2進数)は人間語(10進数)に翻訳して見るのが普通
『2進数10011001の値はいくらですか?』といきなり言われると即答できないでしょう。
では『153って数字分かりますか?』はクソみたいな質問です。なにか裏があってちがう答えを探しそうなほど。
『2進数10011001』は人間世界では『153』です。『10011001』はデジタル語です。
人間世界では10種類の数字で表現できるのに、デジタル世界では0と1しか使えないのでどうしても長くなります。同時にそのままでは何を言っているのか分からない。
そこでプログラマなどはデジタル語では分かりにくいものをいろいろな方法で翻訳していきます。
デジタル語(2進数)を人間語(10進数)に翻訳する
2進数から10進数への変換は、また小学生へ戻ります。まずは、10進数の153という数字は何かから。
ここで大事なのは、位を『いち、じゅう、ひゃく、せん、まん、...』と見ないことです。基数を使って『100, 101, 102, 103, 104, ...』で見ます。
もうこれで、2進数から10進数への変換ができます。先生と生徒のやり取りの "10" を "2" に変えるだけ。
入ってる数字 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
位 | 27 (128) | 26 (64) | 25 (32) | 24 (16) | 23 (8) | 22 (4) | 21 (2) | 20 (1) |
値 | 128 | 0 | 0 | 16 | 8 | 0 | 0 | 1 |
\[128 + 16 + 8 + 1 = 153\]
かんたんですね? ちなみに"1000" は2進数の "8" なのか10進数の "1000" なのか分からないので、『数字(10進数の値)』で書きます。
値 | ||
---|---|---|
2進数の1000 | 1000(8) | 8 |
10進数の1000 | 1000(10) | 1000 |
人間語(10進数)をデジタル語(2進数)に翻訳する
10進数から2進数への変換はさっきの先生と生徒のやり取りをそのまま割り算で表現すれば完成します。
10進数では、
\begin{align}153 \div 100 &= \textcolor{#cf2e2d}{1} 余り 53 &\longleftarrow \ 一番大きな位の分解 \\ 53 \div 10 &= \textcolor{#cf2e2d}{5} 余り 3 &\longleftarrow \ 2番目の位の分解 \\ 3 \div 1 &= \textcolor{#cf2e2d}{3} &\longleftarrow \ 一番小さい位の分解\end{align}
余りが無くなるまで位の大きい方から割っていき、商(赤色)を出てきた順に左から並べれば完成。(2回目以降は直前の余りを位で割る。)
2進数の場合は割る値に2進数の位の10進値を使います。
\begin{align}153 \div 128 &= \textcolor{#cf2e2d}{1} 余り 25 \\ 25 \div 64 &= \textcolor{#cf2e2d}{0} 余り 25 \\ 25 \div 32 &= \textcolor{#cf2e2d}{0} 余り 25 \\ 25 \div 16 &= \textcolor{#cf2e2d}{1} 余り 9 \\ 9 \div 8 &= \textcolor{#cf2e2d}{1} 余り 1 \\ 1 \div 4 &= \textcolor{#cf2e2d}{0} 余り 1 \\ 1 \div 2 &= \textcolor{#cf2e2d}{0} 余り 1 \\ 1 \div 1 &= \textcolor{#cf2e2d}{1} \end{align}
答えは『10011001』で合ってますね?
- P1 なぜ、2進数、16進数が頭に入ってこないのか?
- P2 【10進数】小学1年生になったつもりで復習しよう!
- P3 【2進数】囚われの10を2に変えるだけ。
- P4 【16進数】2進数を人間に見やすくしたショートカット
- P5 2進数, 10進数, 16進数の呼び方
- P6 おまけ。8進数
- P7 おまけ2。12進数