数値の16進表現を文字列に入れることを含むC/C ++プログラムを書いていますが、どのように機能するかについて混乱しています\x
。人々が「\xb2」のようなものを書いた例を見てきました。この場合、プログラムは、bの16進数の後に数値2が続くかどうか、またはb2の16進数が必要かどうかをどのように認識しますか?さらに、これをメモリに格納するときに、「\ x」文字を保存しますか、それとも単に16進表現を保存しますか?
質問する
28569 次
4 に答える
9
C99 標準 (6.4.4.4) から:
8 進数または 16 進数の各エスケープ シーケンスは、エスケープ シーケンスを構成できる最長の文字シーケンスです。
于 2012-04-07T18:43:43.857 に答える
5
例として、文字列"123\x45"
は として 16 進数で格納され31 32 33 45
ます。
Oli の回答によると、「\x」の後の最長の有効な値が使用されます。
「\x」は保存されません。エスケープ シーケンスは、画面に表示される文字を格納するのではなく、指定された実際の文字を格納します。たとえば、'\n' は実際には改行文字 0x0A として格納されます。
于 2012-04-07T18:51:27.543 に答える