質問: この対応表のように16進数の数値をASCII文字へ変換するにはどうすればいいですか? 例えば、`(0x)30`という数値なら、`0`と表示したいです。 参考になるサイトなどを教えてください。
回答: > > 16進数の数値 > > > べつにコンピュータの動作上16進数で扱っているわけではないのですでに質問が謎です。 いいですか?binaryをhex(16進数)で表示することが多いのはあくまで**人間が見てbit列を把握しやすいから**であって、16進数の数値なんてものは**存在しません**。 16進数の数値とやらが何のことを指しているのか**わかりません**が候補を上げましょう。 * `0x`prefixが付いた数値リテラル ex.) `0x30` * 16進数で書かれた文字列リテラル、ないしそれが格納されたメモリー空間へのポインタ等 ex.) `"30"` `0x`prefixが付いた数値リテラルの場合 ======================== やりたいことは > > 数値リテラルが表す数が任意の文字コードで合法な値であり、これを文字として扱いたい > > > となるので、他の方が回答されているように、文字を表す型(ここで文字とは印字文字を**差さない**)である`char`/`wcahr_t`/`char16_t`/`char32_t`に変換すればいいことになります。 つまり ``` char(0x30); wchar_t(0x30); char16_t(0x30); char32_t(0x30); ``` のようにすればいいことになります。 16進数で書かれた文字列リテラル、ないしそれが格納されたメモリー空間へのポインタ等の場合 ============================================= やりたいことは > > 16進数で書かれた文字列を数値に変換してこれを文字として扱いたい > > > となります。数値に変換したあとは先と同じなので割愛して、文字列を数値に変換するのは`std::stoi`系関数を利用すればいいです。第3引数に`16`を渡せば文字列を16進数としてパースします。