2進数のお話(すごく軽~いver.)
2進数における「2倍にする」とは
「一ケタずらす」ことと同義だということをご存知だろうか?
例
11001 = 25
110010 = 50
これ、意外と盲点でしょ?
実は計算機における掛け算は、このケタずらしを行っているだけなのだ。
ちなみに、
4倍なら二桁ずらすだけ、
ということはつまり、
0010 = 2
0100 = 4
2進数で書いたとき、「何桁目に1があるか?」が、そのまま「何桁ズらせばいいのか」という意味に変わる。
2なら、2桁目に1があるので、1桁ずらす。
4なら、3桁目に1があるので、2桁ずらす。
応用
6×5 = 30
を2進数で計算すると
0110 = 6
× 0101 = 5 ←3桁目と1桁目に1がある
---------
011000 ←2ケタずらしたモノ
+ 0110 ←0ケタずらしたモノ
---------
011110 = 30
と、単純な足し算の式にできる。
2進数ってスゲー便利。
特に落ちも無く今日の日記はおしまい。
日々に散りばめられる小さな知的発見が面白い。
2進数における「2倍にする」とは
「一ケタずらす」ことと同義だということをご存知だろうか?
例
11001 = 25
110010 = 50
これ、意外と盲点でしょ?
実は計算機における掛け算は、このケタずらしを行っているだけなのだ。
ちなみに、
4倍なら二桁ずらすだけ、
ということはつまり、
0010 = 2
0100 = 4
2進数で書いたとき、「何桁目に1があるか?」が、そのまま「何桁ズらせばいいのか」という意味に変わる。
2なら、2桁目に1があるので、1桁ずらす。
4なら、3桁目に1があるので、2桁ずらす。
応用
6×5 = 30
を2進数で計算すると
0110 = 6
× 0101 = 5 ←3桁目と1桁目に1がある
---------
011000 ←2ケタずらしたモノ
+ 0110 ←0ケタずらしたモノ
---------
011110 = 30
と、単純な足し算の式にできる。
2進数ってスゲー便利。
特に落ちも無く今日の日記はおしまい。
日々に散りばめられる小さな知的発見が面白い。