c ++的hex值?

我想要做:

int a = 255; cout << a; 

并在输出中显示FF,我将如何做到这一点?

使用:

 #include <iostream> ... std::cout << std::hex << a; 

还有许多其他选项可以控制输出编号的确切格式 ,例如前导零和大/小写。

std::hex是在<iostream>包含的<iostream> 。 但要使用诸如std::setprecision/std::setw/std::setfill / etc之类的东西,你必须包含<iomanip>

要操作要以hex打印的stream,请使用hex操纵器:

 cout << hex << a; 

默认情况下,hex字符以小写forms输出。 要将其更改为大写,请使用uppercase操纵器:

 cout << hex << uppercase << a; 

要稍后将输出更改为小写,请使用nouppercase操纵器:

 cout << nouppercase << b; 

我明白这不是OP要求的,但我仍然认为值得指出如何使用printf来做到这一点。 我几乎总是喜欢使用它在std :: cout(即使没有以前的C背景)。

 printf("%.2X", a); 

'2'定义精度,'X'或'x'定义大小写。

如果你想打印一个hex数字,然后恢复到十进制,你可以使用这个: std::cout << std::hex << num << std::dec << std::endl;

有不同种类的标志和面具可以使用。 有关更多信息,请参阅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; }