如何使用十六進制前綴'0x'輸出一個printf
語句並且右對齊?右對齊數字,包括使用printf的前綴
例如,如果我嘗試的權利與10個字符證明,但數量少於10個字符是這樣的:
printf("0x%10X\n", number);
輸出:
我想它看起來像這樣(忽略圖片中有不同數字的事實):
我試過上面的代碼有一些變化,這是最接近的一個,到目前爲止,我發現。
如何使用十六進制前綴'0x'輸出一個printf
語句並且右對齊?右對齊數字,包括使用printf的前綴
例如,如果我嘗試的權利與10個字符證明,但數量少於10個字符是這樣的:
printf("0x%10X\n", number);
輸出:
我想它看起來像這樣(忽略圖片中有不同數字的事實):
我試過上面的代碼有一些變化,這是最接近的一個,到目前爲止,我發現。
使用#
修飾符,這使0x
前綴部分字段。
printf("%#10x\n", number)
這符合我的需求。我還沒有想出這個選擇。謝謝! –
使用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';
你沒事用'0x0035800000'? – Barmar
您使用'0'修飾符來指定填充應爲零而不是空格。 – Barmar