2011-01-22 11 views
0

A03Eh形式の16進数をA = 10 & E = 14と表示し、Aはニブルです。しかし、私はこのような別のディスプレイを見た:0x002314A8、どのように我々はこの形式に上記の番号を変換できますか?このフォーマットは何ですか?16進数を表示

+1

私はかなり(あなたの問題を理解しますが、[printfの書式指定]をチェックアウトしていないhttp://www.cppreference.com/wiki/io/c/printf_format )あなたを助けるかもしれない。 –

+0

A03Ehはアセンブラ形式、0x0000A03EはC/Unix形式、8バイトへのパディングはオプションで、出力には32ビットのメモリアドレスが表示されます.hおよびxは16進数を表します。 –

答えて

0

フォーマット0xは、16進数を表す標準的なUnixの方法です。私は最初に0xを見たことがありますが、最後にはhではありません。

これは唯一の違いです。 PéterTörök氏のように、C/C++を使用している場合は、印刷時に表示される内容を変更する方法があります。

+0

私は男が必要なものです。 –

+0

それは他のすべての答えに暗黙のうちだった。 –

-1

整数をとり、その形式の文字列を返す関数を作成します。次に、このように呼び出す:

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

書くのは難しいことではありません。 ios :: hexマニピュレータを使用すると、番号が0x形式で表示されます。それはあなたが望んだことですか?

+1

16進数に変換するための特別な関数を書く必要はありません。 '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 ; 
関連する問題