1

printf1 つのステートメントでHEX プレフィックス '0x' を使用して数値を出力し、右寄せにする方法を教えてください。

たとえば、10 文字で右揃えしようとしたが、次のように数が 10 文字未満の場合:

printf("0x%10X\n", number);

出力:

ここに画像の説明を入力


私はそれを次のように見せたいです (写真には別の番号が含まれているという事実を無視してください):

ここに画像の説明を入力


上記のコードのいくつかのバリエーションを試しましたが、これがこれまでに見つけた中で最も近いものです。

4

2 に答える 2

3

#修飾子を使用して、0xプレフィックスをフィールドの一部にします。

printf("%#10x\n", number)
于 2013-11-03T23:33:59.060 に答える
2

C++ I/O ストリーム修飾子を使用しても同様に機能します (安全性も高くなります)。

unsigned int short_hexidecimal_value = 0xff; //Less than ten characters in hex.
unsigned long long long_hexidecimal_value = 0xfabcdef987; //Ten or more characters in hex.
std::cout << std::setw(20) << std::right << std::uppercase << std::hex << "0x" << short_hexidecimal_value << '\n';
std::cout << std::setw(20) << "0x" << long_hexidecimal_value  << '\n';
于 2013-11-03T23:51:35.127 に答える