Mencetak Nilai Hex di C++

Mencetak Nilai Hex Di C



Dalam pemrograman C++, mencetak nilai heksadesimal adalah persyaratan umum. Baik bekerja dengan alamat memori, melakukan operasi Bitwise, atau menangani representasi data heksadesimal, penting untuk memahami berbagai metode untuk menampilkan nilai hex secara efektif. Artikel ini mengeksplorasi berbagai metode dan teknik untuk mencetak nilai heksadesimal dalam C++, menjelaskan aplikasi dan kasus penggunaannya.

Mencetak Nilai Hex Menggunakan Std::hex

Salah satu cara mudah untuk mencetak nilai heksadesimal dalam C++ adalah menggunakan manipulator “std::hex” yang disediakan oleh header . Manipulator ini menginstruksikan aliran keluaran untuk menafsirkan nilai integer sebagai heksadesimal saat mencetak. Bayangkan Anda memiliki peti harta karun yang penuh dengan angka. Namun alih-alih menggunakan sistem desimal biasa, semuanya ditulis dalam bahasa rahasia heksadesimal. Untuk menguraikan kode-kode ini dan mengungkapkan nilai sebenarnya, C++ menawarkan alat bermanfaat yang disebut “std::hex”. Trik ajaib di pustaka ini mengubah aliran keluaran Anda menjadi cincin decoder, yang secara instan menerjemahkan angka heksadesimal misterius tersebut ke dalam angka desimal yang sudah dikenal.







#termasuk
#sertakan
ke utama ( ) {
int Nilai desimal = 907 ;
std::cout << 'Nilai heksadesimalnya adalah:' << std::hex << Nilai desimal << std::endl;
kembali 0 ;
}


Dalam contoh ini, manipulator “std::hex” diterapkan ke aliran keluaran “std::cout” sebelum mencetak bilangan bulat “decimalValue”. Setelah mencetak nilai hex, aliran dikembalikan ke perilaku normalnya. Kode ini dengan sempurna menunjukkan cara mencetak nilai heksadesimal menggunakan manipulator “std::hex” di C++. Berikut rincian kodenya:



Header



: Ini digunakan untuk input/output dasar seperti mencetak ke konsol dan menyediakan manipulator “std::hex” untuk memformat output sebagai heksadesimal.





Fungsi utama

'int Nilai desimal = 907;' mendeklarasikan variabel “decimalValue” dengan tipe “int” dan menetapkannya dengan nilai desimal 907.



“std::cout << “Nilai Heksadesimal adalah: ” << std::hex << DecimalValue << std::endl;” mencetak “Nilai heksadesimal:” diikuti dengan representasi heksadesimal dari “Nilai Desimal”.

“std::hex” menginstruksikan aliran keluaran untuk menafsirkan nilai berikut sebagai heksadesimal. Variabel “decimalValue” berisi nilai desimal yang akan diubah menjadi hex. 'std::endl' menyisipkan karakter baris baru setelah dicetak. Terakhir, kode ini sekarang mencetak “Nilai heksadesimal: 38B” seperti yang Anda lihat di cuplikan output berikut:

Mencetak Nilai Hex Menggunakan Penentu Format “%x”.

Bagi mereka yang akrab dengan bahasa pemrograman C, fungsi “printf” secara ringkas mencetak nilai heksadesimal dalam C++. Meskipun C++ menawarkan pendekatan dan “std::hex”, “printf” menyediakan cara yang ringkas dan langsung untuk mencapai hasil yang sama.

#sertakan
ke utama ( ) {
int Nilai desimal = 1256 ;
printf ( 'Nilai heksadesimal dengan printf adalah: %x \N ' , Nilai desimal ) ;
kembali 0 ;
}


Dalam contoh ini, penentu format “%x” dalam fungsi “printf” menunjukkan bahwa argumen terkait harus dicetak dalam heksadesimal. Kode yang diberikan adalah contoh sempurna untuk mencetak nilai heksadesimal menggunakan “printf” di C++. Mari kita uraikan:

Header

: Header ini mencakup fungsi “printf” dan fungsi input/output standar lainnya. Header disertakan dalam rangkaian pustaka yang disertakan dengan C++. Ini menghadirkan fungsionalitas dari pustaka bahasa C, memungkinkan C++ untuk memanfaatkan teknik input dan output klasik yang awalnya ditemukan di C melalui penyertaan .

Fungsi utama

'int Nilai desimal = 1256;' mendeklarasikan dan menetapkan nilai desimal 1256 ke variabel bilangan bulat bernama “decimalValue”. “printf” dalam “printf(“Nilai heksadesimal dengan printf adalah: %x\n”, desimalValue);” pernyataan memanggil fungsi 'printf' untuk mencetak output yang diformat. “%x” adalah “penentu format” yang menunjukkan bahwa argumen berikut harus dicetak sebagai angka heksadesimal huruf kecil. Terakhir, “\n” menyisipkan karakter baris baru setelah dicetak. Kode ini menampilkan “Nilai Heksadesimal dengan printf adalah 4e8” ke konsol seperti yang terlihat pada cuplikan keluaran berikut:

Mencetak Nilai Hex dengan Padding

Ketika berhadapan dengan nilai heksadesimal, khususnya alamat memori, lebar atau padding yang konsisten sering kali diinginkan. Hal ini dapat dicapai dengan menggunakan manipulator “std::setw” yang disediakan oleh header . Berikut adalah contoh cara mencetak nilai HEX dengan padding. Program ini mendemonstrasikan cara mencetak nilai heksadesimal dalam C++ dengan padding menggunakan metode header dan manipulator .

#termasuk
#sertakan
ke utama ( ) {
int Nilai desimal = 47 ;
std::cout << 'Nilai heksadesimal dengan padding adalah:' << std::setw ( 8 ) << std::hex << Nilai desimal << std::endl;
kembali 0 ;
}


Dalam contoh ini, std::setw(8) memastikan bahwa nilai heksadesimal dicetak dengan lebar minimal 8 karakter. Hal ini sangat berguna untuk menyelaraskan nilai dalam kolom atau dengan alamat memori.

Mari kita pecahkan kodenya dan memahami setiap baris satu per satu:

Header

: Ini menyediakan fungsi input/output dasar seperti aliran “std::cout” untuk pencetakan.

: Ia menawarkan manipulator pemformatan seperti “std::setw” yang digunakan untuk mengubah tampilan keluaran.

Fungsi utama

'int Nilai desimal = 47;' mendeklarasikan dan menetapkan nilai desimal 47 ke variabel bilangan bulat bernama “decimalValue”.

“std::cout << “Nilai heksadesimal dengan padding adalah: ” << std::setw(8) << std::hex << desimalValue << std::endl;” pernyataan mencetak angka heksadesimal 47 dengan padding setw(8). “std::setw(8)” menerapkan manipulator “std::setw” dengan argumen 8, menentukan lebar output minimum 8 karakter.

“std::hex” menerapkan manipulator “std::hex” yang memberi tahu aliran untuk menafsirkan nilai berikutnya sebagai heksadesimal seperti yang dijelaskan dalam salah satu contoh yang diberikan. Output berikut dicetak ke konsol:

Mencetak Nilai Hex Data Byte

Saat bekerja dengan data byte, biasanya setiap byte direpresentasikan sebagai nilai heksadesimal dua digit. Hal ini dapat dicapai dengan memastikan bahwa lebar diatur ke 2 dan menggunakan “std::setfill('0')” untuk mengisi angka nol di depannya. Berikut ini adalah contoh untuk membantu Anda memahami cara mencetak nilai hex data byte dapat dilakukan:

#termasuk
#sertakan
ke utama ( ) {
karakter byteData yang tidak ditandatangani = 0xAB;
std::cout << 'Representasi heksadesimal dari data byte adalah:'
<< std::setw ( 2 ) << std::setisi ( '0' ) << std::hex << static_cast < ke dalam > ( byteData )
<< std::endl;
kembali 0 ;
}


Di sini, “std::setw(2)” memastikan bahwa setiap byte diwakili dengan lebar minimum 2 karakter, dan “std::setfill('0')” menentukan bahwa angka nol di depan harus digunakan untuk mengisi lebar.

Program yang diberikan sebelumnya ini menunjukkan pendekatan yang lebih maju untuk mencetak nilai heksadesimal dalam C++ dengan format tertentu. Mari kita uraikan untuk mendapatkan pemahaman yang lebih baik:

Header

: Menyediakan fungsi input/output dasar seperti “std::cout” dan “std::hex” untuk pencetakan.

: Menawarkan manipulator pemformatan seperti “std::setw” dan “std::setfill” yang digunakan untuk mengubah tampilan keluaran.

Fungsi utama

Dalam fungsi utama, “byteData = 0xAB;” yang tidak ditandatangani char didefinisikan dengan mendeklarasikan variabel unsigned char bernama “byteData” dan menetapkan nilai heksadesimal “0xAB” ke variabel tersebut. Pernyataan “std::cout << “Representasi Heksadesimal dari data byte adalah: “:” mengeluarkan pesan ke konsol menggunakan aliran keluaran.

“<< std::setw(2) << std::setfill('0') << std::hex << static_cast (byteData) << std::endl;” rantai pernyataan menerapkan banyak manipulator untuk memformat output.

std::setw(2): Ini menetapkan lebar keluaran minimum menjadi 2 karakter.

std::setfill('0'): Ini menetapkan bahwa setiap padding yang diperlukan untuk mencapai lebar minimum harus diisi dengan karakter “0”.

std::hex: Ini memberitahu aliran untuk menafsirkan nilai berikutnya sebagai heksadesimal.

static_cast (byteData): Ini mentransmisikan data karakter yang tidak ditandatangani ke “int” sebelum dikonversi ke heksadesimal. Ini secara teknis tidak diperlukan tetapi dapat digunakan untuk konsistensi dengan beberapa opsi pemformatan.

std::endl: Ini menyisipkan karakter baris baru setelah dicetak.

Output dari program ini yang dicetak di konsol ditampilkan dalam cuplikan berikut:

Kesimpulan

Mencetak nilai heksadesimal dalam C++ melibatkan pemahaman alat yang tersedia dan memilih metode yang sesuai berdasarkan kebutuhan spesifik. Baik Anda memilih manipulator “std::hex”, fungsi “printf”, atau kombinasi alat pemformatan untuk padding dan angka nol di depan, pemahaman yang kuat tentang teknik ini sangat penting bagi setiap programmer C++. Dengan menerapkan metode ini secara cermat, Anda dapat memastikan bahwa nilai heksadesimal ditampilkan secara akurat dan dalam format yang menarik secara visual yang berkontribusi pada keterbacaan dan kejelasan kode C++ Anda secara keseluruhan.