こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

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

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

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

投稿日時 - 2010-11-06 02:13:13

QNo.6300031

困ってます

質問者が選んだベストアンサー

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'

投稿日時 - 2010-11-06 02:23:56

お礼

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

投稿日時 - 2010-11-06 03:25:34

ANo.1

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問