牛、豚、鶏、どれか一つ食べられなくなるとしたら?

数値をASCII文字にする方法についての質問です。

PICマイコンのプログラミングをするために、C言語を使用しています。LCDに数値を表示するには変数を数値ではなく文字で渡してやらないといけないようなのですが、その変換のしかたがわからず調べていると、あるサイトで二桁の数字(suuji)の1の位をASCII文字(hensu)にするために、

hensu = (suuji % 10) + '0';

のようにコードを記載していました。実際にこの通りプログラミングしてみるとLCDに表示されたのですが、なぜこのようにするとASCII文字に変換できるのかがわかりません。('0'を加えるとアスキー文字になるのでしょうか?)どなたか教えて頂ければと思います。

A 回答 (1件)

C言語では''(シングルクオート)で括った文字は、その文字を表わす数値(通常はASCIIコード)になることはおわかりですね?


あと、(suuji % 10) がsuujiを10で割った余り(=10進法で1の位の数値)というのも大丈夫ですね?

ASCIIコードでは、0から9までが順番に並んでいます。よって0~9までの数値に'0'を足せば、その数値を表す「数字」になります。
'0'が48(0x30)= 0+48= 0+'0'
'1'が49(0x31)= 1+48= 1+'0'
'2'が50(0x32)= 2+48= 2+'0'
...
'9'が57(0x39)= 9+48= 9+'0'
    • good
    • 0
この回答へのお礼

なるほど!ASCIIコードのことだったんですね。よくわかりました。お返事ありがとうございました!

お礼日時:2010/11/06 03:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報