使うのは10進数、コンピュータが使うのは...人は計算する時に0~9の数字を使います。0から9の数字が使われるのかと不思議に思ったことありませんか。これは頭の中で十進数を使って計算していることを示しています。指が10本あったから自然に十進数になったという説もありますが、指のないコンピュータは何進数を使うのでしょうか。実は、コンピュータは0と1の数字しか使いません。二進数で全ての数を計算していることになります。どんな大きな数字も小さな数字もプラスの数もマイナスの数も全部二進数、つまり、0と1だけで表現します。したがって、二進数で表現するととても長い桁数になってしまいます。「1001001010」のような数字を計算する場合、0と1だけでは解りにくいので、二進数3つをまとめて八進数、4つをまとめて十六進数とすることが多いです。十進数でも十六進数でも元になる数は同じなので、互いに変換はできます。このような進数の変換を基数変換といいます。基数変換を行なってみましょう。方法はとても簡単です。計算結果を二進数で得たい場合:式の最後に「b」を置く。例:1から5までの積をとって二進数で表す。b1111000b計算結果を八進数で得たい場合:式の最後に「o」を置く。例:1から5までの積をとって八進数で表す。o170o計算結果を十進数で得たい場合:式の最後に何も置かない。*120計算結果を十六進数で得たい場合:式の最後に「h」を置く。例:1から5までの積をとって十六進数で表す。h78hこれらの数字、「1111000b」も「170o」も「120」も「78h」もすべて同じ値です。ちなみに、最も簡単な使い方は、以下のような定数の変換です。十進数の300を十六進数に変換してみました。h12ch連続でいろんな基数に変換してみよう上記の例題は全て、DOSのコマンドラインから逆ポーランド式を受け取るものでしたが、rpnは以下のように標準入力を使った連続変換もできます。入力(終わり)※^ZはCtrlキーを押したまま、Zキーを押します(最後にエンターキーを入力)。hを直接付与して、各基数を混ぜ合わせて計算することもできます。基数の複合計算ですね。例:二進数の1011010に八進数の777を足して十六進数のabを掛ける。*102771コンピュータのプログラマーなら基礎知識の基数変換ですが、初めての人は馴染みの十進数(例えば生まれた西暦とか)を二進数や十六進数に変換してみれば、コンピュータ数字に親しみがわくかもしれません。(ビルゲイツの誕生年です)現在では計算するときに十進数を使うのが当たり前のように思えますが、人類史の初めに数などはなく、あっても「1」とか「たくさん」レベルでした。その後、文明の進歩にしたがって数えるという行為が必要になって、どんどん数を表す記号が増えたそうです。実際にメソポタミアでは60進数が使われましたが、60進数は割り切れる数が多いこと、1年を360日とする彼らの暦に合うことから文明が滅んでからもかなり長い間使われていました。その後、位取りの確立、0の発明、小数の体系化等を経て、ようやく現在の十進数の隆盛となったわけです。全てが十進数になったわけではなく、例えば時計は使っている数字こそ10種類ですが、実質的に60進数のままですし、一日の時間は24進数です。コンピュータの世界でも2進数、16進数が普通に使われています。『今回の問題』.................................................................................以下を逆ポーランド記法式に変換せよ。2進数の100と2進数の100を足して、答えを16進数で得る式。2進数の1000と10進数の100を足して、答えを8進数で得る式。10進数の-1を2進数で得る式。トップへ文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。rpn試用版と標準版(2kリビジョン)はダブルクォートで囲ってください。"foo"ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。TIPS」を参照ください。rpnの障害情報はこちら。rpn試用版の場合、複雑なプログラムや処理時間のかかるプログラムの一部には動作しないものがあるかもしれません。無料提供であることを勘案・了承ください。rpn標準版は、すべてのプログラムが動作します。※ウェブサイトの内容を無断で複製、変更することは法律で禁じられています。