10進法は指のせい
私たちが10進法を使うことに数学的な理由はありません。指が10本だからそう固まっただけです。進法は、いくつごとに桁を上げるかという取り決めであり、どの進法で書いても数そのものは同じです。255と0xFFと0b11111111は、同じ数を3通りに書いたものです。
同じ数を別の書き方にしているだけです。それなのになぜわざわざ変えるのか。
私たちが10進法を使うことに数学的な理由はありません。指が10本だからそう固まっただけです。進法は、いくつごとに桁を上げるかという取り決めであり、どの進法で書いても数そのものは同じです。255と0xFFと0b11111111は、同じ数を3通りに書いたものです。
電子回路が安定して区別できる状態は、電圧が高いか低いかの二つです。10段階を区別しようとすれば、雑音にはるかに弱くなります。ですから計算機は二つの状態ですべてを表し、その表記が2進法です。ビット1つは、この二つの状態のどちらかを収める場所です。
2進数は桁が長すぎて人には読みにくいものです。16は2の4乗なので、2進数4桁が16進数1桁にちょうど収まります。そのため2進数と16進数の変換は計算なしで、4桁ずつ区切って置き換えるだけで済みます。色の符号やメモリの番地を16進法で書く理由がこれです。
10とだけ書かれていては、10進数の十なのか2進数の二なのか分かりません。そのためプログラミングでは0xを付けて16進数、0bを付けて2進数であることを示します。接頭辞なしで書かれた数を別の進法と取り違えて起きる誤りは見つけにくいので、表記をはっきりさせるほうが安全です。
10進数を別の進法に変えるには、その進法の数で割り続けて余りを逆から並べます。逆に別の進法を10進数に変えるには、各桁にその進法のべき乗を掛けて足します。よく使う値をいくつか覚えておけば、多くの場面で計算そのものが不要になります。
ボタンを押すと、そのエンジンでこのキーワードを検索します