• ベストアンサー

10進数からの変換に関して

10進で表される「47、-29」といった数値を 「a」や「N」といった文字に変換する上でどのような方法にて変換することができますでしょうか。 webにて調べきれませんでしたので、ご教授頂ければ幸いでございます。 宜しくお願いします。

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

  • ベストアンサー
回答No.1

「変換」は出来ませんよ。 出来るのは「表現方法の変更」です。 メモリ上に「10進数で47」と言うデータが入っているとき、それを「47(DEC)」と思うか「00101111(BIN)」と思うか「57(OCT)」と思うか「2F(HEX)」と思うか「/(ASCII)」と思うか「BEL(EBCDEC)」と思うかは自由です。 メモリからそのデータを取り出して、人間が読める文字「4」と「7」の2つを並べて「47」と表示するのは「表現方法の1つ」であって、取り出されたデータは変化しません。 変換ってのは「Aをaにする」とか「47と言う数値を4と7を表す文字コード2つにする」とか言うのを言います。 で、大抵のどの言語にも「(中身はどんなデータか知らんけど)言われた通りの表現でコンソール出力するライブラリ」ってのがあって、それを使うと「47」とか「/」とかが画面に表示されます。 因みに、10進数を文字に変換するなら「10進数と文字の対応表」を作れば良いです。 例えば、10進数の-128~127を文字に変換したいなら -128はa -127はG -126は& -126は@ -125は# (以下略) と言う表を作れば、変換は出来ます。 但し、10進数と文字の対応を「誰かが決めて統一しておく必要」があります。 「誰かが決めた表」は何種類かあって「JISコード表」とか「ASCIIコード表」とか「EBCDECコード表」とか、色々あります。 現在は「ASCIIコード表」が広く使われてます。

tanaka_ok
質問者

お礼

適切な表現をご指摘頂きありがとうございます。 ASCIIコード表を用いて10進数と比較する手段を踏んでいたのですが、 ASCIIコード表にあてはめられていない値も存在したので 考えがそもそも間違っているのかと思いまして質問させて頂きました。

その他の回答 (1)

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.2

ASCIIコードの各文字と、その文字コード(10進数)を比較したい、ということであれば、考え方は間違ってはいないと思います。(具体的にどの様な方法かは分かりませんが) ただし、 1)ASCIIコードで定義されているのは、0から127となること、 2)印字可能でない文字があること、 を考慮してください。 1)の方は、128以上は、未定義となるだけですが、 2)の方は、ディスプレイ上に表示させることや入力する(コントロールキーを押しながらとかなら出来るものもある)ことは難しいので、表示させる場合適当な文字列に置き換えたりします。 例えば、2 なら ”STX”、 13なら”CR”など。 これで回答になりますでしょうか?

tanaka_ok
質問者

お礼

ご回答頂きましてありがとうございます。

関連するQ&A