プログラムをしていて数値入力なんていくらでも使いますよね?
そんな数値入力についてです。
C/C++での数値入力でハマったときの話です……
初歩的なことですが、忘れてると思わぬ落とし穴にハマる場合がありますので……
表現一覧
おさらいです。
N進数 | 書き方 |
---|---|
10進数 | 9 |
8進数 | 09 |
16進数 | 0x9 |
コーディングでハマった8進数
8進数はこのように表現します。
int val = 01; // 数字の先頭に0をつける
以前、一括で処理を書こうとしたことがありました。
Excelからテキストにコピペし、一括編集をかけて代入処理を作ったのですが……
そのとき基のデータのせいで、サンプルコードのように「0N」となっていたのです……
実行してみるとなにか値がおかしい……
そりゃそうですよね、8進数ですから(笑)
「9」を想定しているのに、09(8進数)なので、10(10進数)になってましたから値がおかしくなるのは当たり前です(笑)
あとがき
いかがでしたでしょうか?
8進数って基本使わないので、忘れてて凡ミス……なんてことあるかもしれません。
ので記憶の片隅にでも入れておきましょう!