Jawaban:
Menggunakan:
#include <iostream>
...
std::cout << std::hex << a;
Ada banyak opsi lain untuk mengontrol pemformatan yang tepat dari nomor keluaran , seperti angka nol di depan dan huruf besar / kecil.
ios::fmtflags f(cout.flags());
dan mengembalikannya out.flags(f);
.
std::cout.flags(f);
Untuk memanipulasi aliran untuk mencetak dalam heksadesimal, gunakan hex
manipulator:
cout << hex << a;
Secara default karakter heksadesimal adalah output dalam huruf kecil. Untuk mengubahnya menjadi huruf besar, gunakan uppercase
manipulator:
cout << hex << uppercase << a;
Untuk mengubah output kembali menjadi huruf kecil, gunakan nouppercase
manipulator:
cout << nouppercase << b;
nouppercase
akan mengubah output kembali ke desimal?
Saya mengerti ini bukan apa yang diminta OP, tapi saya masih merasa perlu untuk menunjukkan bagaimana melakukannya dengan printf. Saya hampir selalu lebih suka menggunakannya daripada std :: cout (bahkan tanpa latar belakang C sebelumnya).
printf("%.2X", a);
'2' mendefinisikan presisi, 'X' atau 'x' mendefinisikan case.
printf("hello\n")
setara dengan fprintf(stdout, "hello\n")
. Lebih berguna, Anda bisa meneruskan stdout
(atau stdin
, atau stderr
) ke fungsi yang mengambil FILE*
argumen.
Ada berbagai jenis bendera & topeng yang dapat Anda gunakan juga. Silakan merujuk http://www.cplusplus.com/reference/iostream/ios_base/setf/ untuk informasi lebih lanjut.
#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;
}
std::hex
memberi Anda format hex, tetapi ini adalah opsi stateful, yang berarti Anda perlu menyimpan dan memulihkan keadaan atau itu akan berdampak pada semua output di masa depan.
Mengalihkan kembali secara naif std::dec
hanya baik jika di situlah letak bendera sebelumnya, yang mungkin tidak demikian, terutama jika Anda sedang menulis perpustakaan.
#include <iostream>
#include <ios>
...
std::ios_base::fmtflags f( cout.flags() ); // save flags state
std::cout << std::hex << a;
cout.flags( f ); // restore flags state
Ini menggabungkan jawaban dan info Greg Hewgill dari pertanyaan lain .
Gunakan std::uppercase
dan std::hex
untuk memformat variabel integer a
untuk ditampilkan dalam format heksadesimal.
#include <iostream>
int main() {
int a = 255;
// Formatting Integer
std::cout << std::uppercase << std::hex << a << std::endl; // Output: FF
std::cout << std::showbase << std::hex << a << std::endl; // Output: 0XFF
std::cout << std::nouppercase << std::showbase << std::hex << a << std::endl; // Output: 0xff
return 0;
}
cout << hex << a << dec;
untuk mengubahnya kembali.