lisz-works

プログラミングと興味を貴方に

【C言語】8進数値入力でハマった時の話

【スポンサーリンク】

プログラムのソースコード

プログラムをしていて数値入力なんていくらでも使いますよね?

そんな数値入力についてです。

C/C++での数値入力でハマったときの話です……

初歩的なことですが、忘れてると思わぬ落とし穴にハマる場合がありますので……

表現一覧

おさらいです。

N進数 書き方
10進数 9
8進数 09
16進数 0x9

コーディングでハマった8進数

8進数はこのように表現します。

int val = 01;    // 数字の先頭に0をつける

以前、一括で処理を書こうとしたことがありました。
Excelからテキストにコピペし、一括編集をかけて代入処理を作ったのですが……

そのとき基のデータのせいで、サンプルコードのように「0N」となっていたのです……

実行してみるとなにか値がおかしい……

そりゃそうですよね、8進数ですから(笑)

「9」を想定しているのに、09(8進数)なので、10(10進数)になってましたから値がおかしくなるのは当たり前です(笑)

あとがき

いかがでしたでしょうか?

8進数って基本使わないので、忘れてて凡ミス……なんてことあるかもしれません。

ので記憶の片隅にでも入れておきましょう!