• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CASLIIの数値データ入出力)

CASLIIの数値データ入出力について

このQ&Aのポイント
  • CASLIIの数値データ入出力において、JISの文字コード表の値が使用されます。16進数の数値で表される文字には、定数(0030)を減算することで内部コードが得られます。
  • 例えば数字の'5'の内部コードは(0035)で、16進数の数値は(0005)です。文字コードの差は16進数の定数(0030)です。
  • しかし、アルファベットの'A'の内部コードは(0041)です。16進数の数値は(000A)であり、文字コードの差は16進数の定数(0037)です。なぜここで(0037)になるのか、詳細な過程を教えてください。

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

  • ベストアンサー
  • wanda1
  • ベストアンサー率100% (1/1)
回答No.2

文字→数値変換ですね。 説明が面倒ですが、内容はごく単純です。頭をやわらかくして。 0 = 文字コード(0030) - (0030) 1 = 文字コード(0031) - (0030) 2 = 文字コード(0032) - (0030) 5 = 文字コード(0035) - (0030) 9 = 文字コード(0039) - (0030) ここで、A = 文字コード - 0030 と同様にやりたいところですが、駄目です。 文字コード表を見ればわかる通り、1~9の文字コードとA~Fの文字コードは離れているので。(連続値として変換できない) A~Fは基準点になる0030という数値が変わってきます。 A = 文字コード(0041) - (0041) + (000A) B = 文字コード(0042) - (0041) + (000A) F = 文字コード(0046) - (0041) + (000A) この、-0041+000A を計算してまとめると、-0037 A = 文字コード(0041) - (0037) となります。 こんな手法プログラム作成時に本当にやるのか!と言われそうですが、 使う人は使いますし、知っておいて損はないです。

tom0093
質問者

お礼

非常に分かりやすくて助かりました! 基本情報も無事高得点も取れて、たまたまこの文字コードに関する問題も出ました! ありがとうございました!

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

>数値と文字コードの差は16進数で(0030) >というのは理解できます。 0035 - 0005 = 0030 >なぜここで(0037)になるのでしょうか・・。 0041 - 000A = 0037 (10進だと、65 - 10 = 55 ) 全く同じ構造です。

tom0093
質問者

お礼

ありがとうございました!

関連するQ&A