• ベストアンサー

アスキーコードの文字をデコードする方法

こんにちは。 Windows環境です。 ある変数に0-9,a-zのアスキーコードの数字が格納されています。 それを元の数字や文字列にデコードしたいと思うのですが どのようにすればよろしいのでしょうか? どなたかご存知の方、よろしくお願いします。

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

  • ベストアンサー
  • hpsk
  • ベストアンサー率40% (48/119)
回答No.3

参考URLの質問8.6をご覧ください。 majikaruさんはこのあたりの勘違いをされているのではないでしょうか? 'a'に対応するアスキーコードが 61 の場合、 'a' という文字定数は、整数の 61 そのものです。 printf("%d %c\n",61,61); printf("%d %c\n",'a','a'); を実行してみればそれが実感できるのではないでしょうか。

参考URL:
http://www.kouno.jp/home/c_faq/c8.html
majikaru
質問者

お礼

ご返答ありがとうございます。 指定URLのサイト、とても参考になりました。 貴重な情報ありがとうございました。

その他の回答 (4)

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.5

#3のhpskです。ちょっと訂正です。 'a'に対応するASCIIコードは 61 は 61 でも、16進の61なので、 > printf("%d %c\n",61,61); は、 printf("%d %c\n",0x61,0x61); が正しいです。

  • haiji2004
  • ベストアンサー率25% (48/187)
回答No.4

No2です。 単純に10進数にするのだと思ってました。 よく考えたらg~zなんて無理ですねw 回答としてはNo3さんに同意見です。

majikaru
質問者

お礼

ご返答ありがとうございます。 参考にしたいと思います。

  • haiji2004
  • ベストアンサー率25% (48/187)
回答No.2

ある変数が文字列'0'~'9'の値であれば ある変数から文字列'0'を引けば出ます。 小文字の'a'から'z'であれば ある変数から文字列'a'を引いて10足せば出ます。 大文字も一緒ですね。 こんな回答でいいでしょうか?

回答No.1

0-9 はいいとして、 a-zのアスキーコードの'数字'とはなんですか?

majikaru
質問者

お礼

説明不足で失礼しました。 例えば「1」の数字であったら char test; のtestには「30」というアスキーコード(の数字)が 格納されているという意味です。 「a」であれば61ですね。

関連するQ&A

専門家に質問してみよう