0

次のものに相当するものを作成したい:

   char* val = "\x11\x11\x11\x11";

htole32() 関数を使用します。「\x11」は印刷できない文字なので、どうすればいいですか?

編集

int を char* にキャストするつもりですが、セグメンテーション違反を受け取りたくありません。

    int val = 0x11111111;
4

1 に答える 1

2

最終的な目標は完全にはわかりませんが、整数を 16 進形式で指定できます。

uint32_t val = 0x11111111;

また、コメントに記載されているように、16 進表現は、(または) を書式指定子としてprintf使用して、一連の関数で出力できます。OPから収集できるものから、それはあなたが探しているものかもしれませんが、完全にはわかりません. %x%X

OP編集に応じて編集: にキャストすることの意味が完全には明確ではありませんchar*valのアドレスを char*にキャストしたい場合(例: char *ptr = (char*)&val;)、それは正常に機能し、個々のバイトにアクセスできるようになります。

于 2012-05-27T22:02:43.190 に答える