174

私はやってみたいです:

int a = 255; 
cout << a;

出力にFFが表示されるようにするには、どうすればよいですか?

4

10 に答える 10

238

使用する:

#include <iostream>

...

std::cout << std::hex << a;

先行ゼロや大文字/小文字など、出力番号の正確なフォーマットを制御するための他の多くのオプションがあります。

于 2009-01-26T10:39:42.187 に答える
46

std::hexによって定義され、<ios>によって含まれ<iostream>ます。ただし、std::setprecision/std::setw/std::setfill/etc などを使用するには、 を含める必要があります<iomanip>

于 2009-01-26T10:52:58.337 に答える
29

単一の 16 進数を出力してから 10 進数に戻したい場合は、次のように使用できます。

std::cout << std::hex << num << std::dec << std::endl;
于 2015-01-17T20:01:54.993 に答える
13

同様に使用できるさまざまな種類のフラグとマスクがあります。詳細については、 http://www.cplusplus.com/reference/iostream/ios_base/setf/を参照してください。

#include <iostream>
using namespace std;

int main()
{
    int num = 255;
    cout.setf(ios::hex, ios::basefield);
    cout << "Hex: " << num << endl;

    cout.unsetf(ios::hex);
    cout << "Original format: " << num << endl;

    return 0;
}
于 2012-04-22T16:35:05.480 に答える
4

大丈夫!

#include <iostream>
#include <iomanip>

unsigned char arr[] = {4, 85, 250, 206};
for (const auto & elem : arr) {
    std::cout << std::setfill('0') 
              << std::setw(2) 
              << std::uppercase 
              << std::hex 
              << (0xFF & elem) 
              << " ";
}
于 2020-12-22T14:10:26.147 に答える