技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

仕事や趣味で2進数・16進数を使っている身として伝えたい図

気まぐれで基数計算を解説している画像を検索していたのですが、公式めいた画像は見つかっても本質的な所を説明している画像は何故か見つけられませんでした。
公式だけではなく本質を知ることも重要だと思うので、この記事を書きます。
 
基数計算を本質的に表すとズバリこれです。

f:id:akira2kun:20190413220541j:plain

 
我々が日常で使っているのは10進数で、10に達すると次の桁に繰り上がるという概念です。
対して、2進数は2に達すると次の桁に繰り上がるという概念で、ビットのON/OFFの2値で制御するコンピューターにとっては2進数の方が都合が良かったりします。
16進数も16に達すると次の桁に繰り上がるという概念で、2の倍数となっている(16進数2桁で256通り=8ビット=1バイトの情報を扱える)ため、これもコンピューターにとっては都合が良いものになっています。
 
「○進数は○に達すると次の桁に繰り上がるという概念である」ということさえ覚えておけば、公式を覚えていなくても特に困ることはないと思います。
(少なくとも私は仕事でも趣味でも資格試験でも困ったことはないです)
 
例えば、125を10進数で表す時は
 10*10*10の桁…1000より小さいのでここには何も入らない。
 10*10   の桁…ここを1にすれば、125の内100は表現できる。残り25。
 10      の桁…ここを2にすれば、25の内20は表現できる。残り5。
 1       の桁…ここを5にすれば、残りの5を全て表現できる。
→125
と表すことができます。
 
2進数もこれと同じです。
例えば、7を2進数で表す時は
 2*2*2の桁…8より小さいのでここには何も入らない。
 2*2  の桁…ここを1にすれば、7の内4は表現できる。残り3。
 2    の桁…ここを1にすれば、3の内2は表現できる。残り1。
 1    の桁…ここを1にすれば、残りの1を全て表現できる。
→111(2)
と表すことができます。
 
以上のことは当ブログの読者層なら皆さんご存知かと思うのですが、2進数を知らない方が検索してたまたまこの記事を見つけて理解していただけたら良いなぁ、ということで。
----------------------
目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM