2011-01-22 207 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 ;