2011-01-22 170 views
0

我们将以A03Eh格式显示十六进制数,其中A = 10 & E = 14,A是半字节。但我已经看到了另一个像这样的显示:0x002314A8,我们如何将上述数字转换为这种格式?这是什么格式?显示十六进制数

+1

我不太明白你的问题,但检查出[printf的格式说明](http://www.cppreference.com/wiki/io/c/printf_format )可能会帮助你。 –

+0

A03Eh是汇编格式,0x0000A03E是C/Unix格式,填充8字节是可选的,源于表示输出中的32位存储地址,h和x表示十六进制。 –

回答

0

格式0x是表示十六进制数字的标准Unix方式。我习惯于在开始时看到0x,最后看不到h

这是唯一的区别。就像PéterTörök所说的那样,如果你使用的是C/C++,那么有办法修改打印时显示的内容。

+0

这就是我需要男人的东西。 –

+0

这是隐含在其他答案。 –

-1

编写一个函数,它接受一个整数并返回该格式的字符串。然后像这样调用它:

std::cout << toHex(0xA03E); 

它应该不是那么难写的函数。使用ios :: hex操纵器将以0x格式显示您的号码。那是你想要的吗?

+1

写一个额外的函数转换为十六进制可能不是必要的,使用'std :: hex'就足够了 –

+0

@Cesar:不是,如果他想要显示他的数字像这样“A03Eh” –

+0

@Benjamin Lindley:printf(“ %Xh“,a); –

2
int a = 0x002314A8; 
printf("a = 0x%08X", a); 

std::out << "a = 0x" << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << std::setprecision(8) << a ;