C++ programmēšanā heksadecimālo vērtību drukāšana ir izplatīta prasība. Neatkarīgi no tā, vai strādājat ar atmiņas adresēm, veicat Bitwise darbības vai nodarbojas ar datu heksadecimālo attēlojumu, ir svarīgi saprast dažādas metodes, lai efektīvi parādītu heksadecimālās vērtības. Šajā rakstā ir apskatītas dažādas metodes un paņēmieni heksadecimālo vērtību drukāšanai valodā C++, izskaidrojot to lietojumus un lietošanas gadījumus.
Hex vērtību drukāšana, izmantojot Std::hex
Viens vienkāršs veids, kā drukāt heksadecimālās vērtības programmā C++, ir izmantot “std::hex” manipulatoru, ko nodrošina
#include
#include
int galvenais ( ) {
int decimalValue = 907 ;
std::cout << 'Heksadecimālā vērtība ir: << std::hex << decimalValue << std::endl;
atgriezties 0 ;
}
Šajā piemērā manipulators “std::hex” tiek lietots “std::cout” izvades straumē pirms veselā skaitļa “decimalValue” drukāšanas. Pēc heksadecimālās vērtības drukāšanas straume tiek atjaunota uz parasto darbību. Šis kods lieliski parāda, kā izdrukāt heksadecimālo vērtību, izmantojot C++ manipulatoru “std::hex”. Šeit ir koda sadalījums:
Virsraksti
Galvenā funkcija
“int decimalValue = 907;” deklarē “int” tipa mainīgo “decimalValue” un piešķir tam decimālo vērtību 907.
“std::cout << “Heksadecimālā vērtība ir: ” << std::hex << decimalValue << std::endl;” izdrukā “Hexadecimal value:”, kam seko “decimalValue” heksadecimālais attēlojums.
“std::hex” norāda izvades straumei interpretēt tālāk norādīto vērtību kā heksadecimālo. Mainīgais “decimalValue” satur decimālvērtību, kas jāpārvērš hex. “std::endl” pēc drukāšanas ievieto jaunas rindiņas rakstzīmi. Visbeidzot, šis kods tagad izdrukā “heksadecimālo vērtību: 38 B”, kā redzams šajā izvades fragmentā:
Hex vērtību drukāšana, izmantojot “%x” formāta norādītāju
Tiem, kas pārzina C programmēšanas valodu, funkcija “printf” īsi izdrukā heksadecimālās vērtības C++ valodā. Kamēr C++ piedāvā
int galvenais ( ) {
int decimalValue = 1256. gads ;
printf ( 'Heksadecimālā vērtība ar printf ir: %x \n ' , decimalValue ) ;
atgriezties 0 ;
}
Šajā piemērā formāta norādītājs “%x” funkcijā “printf” norāda, ka atbilstošais arguments ir jādrukā heksadecimālā formā. Dotais kods ir ideāls piemērs heksadecimālās vērtības drukāšanai, izmantojot “printf” programmā C++. Sadalīsim to:
Virsraksti
Galvenā funkcija
'int decimalValue = 1256;' deklarē un piešķir decimālo vērtību 1256 veselam skaitļa mainīgajam ar nosaukumu “decimalValue”. “printf” laukā “printf(“Heksadecimālā vērtība ar printf ir: %x\n, decimalValue);” paziņojums izsauc funkciju “printf”, lai izdrukātu formatētu izvadi. “%x” ir “formāta norādītājs”, kas norāda, ka šāds arguments ir jādrukā kā heksadecimālais skaitlis ar mazajiem burtiem. Visbeidzot, “\n” pēc drukāšanas ievieto jaunas rindiņas rakstzīmi. Šis kods konsolei izvada “Heksadecimālā vērtība ar printf ir 4e8”, kā redzams šajā izvades fragmentā:
Hex vērtību drukāšana ar polsterējumu
Strādājot ar heksadecimālajām vērtībām, īpaši atmiņas adresēm, bieži vien ir vēlams konsekvents platums vai polsterējums. To var panākt, izmantojot “std::setw” manipulatoru, ko nodrošina
#include
int galvenais ( ) {
int decimalValue = 47 ;
std::cout << 'Heksadecimālā vērtība ar polsterējumu ir: << std::setw ( 8 ) << std::hex << decimalValue << std::endl;
atgriezties 0 ;
}
Šajā piemērā std::setw(8) nodrošina, ka heksadecimālā vērtība tiek drukāta ar vismaz 8 rakstzīmju platumu. Tas ir īpaši noderīgi, lai saskaņotu vērtības kolonnās vai ar atmiņas adresēm.
Izjauksim kodu un sapratīsim katru rindiņu pa vienam:
Virsraksti
Galvenā funkcija
'int decimalValue = 47;' deklarē un piešķir decimālo vērtību 47 veselam skaitļa mainīgajam ar nosaukumu “decimalValue”.
“std::cout << “Heksadecimālā vērtība ar pildījumu ir: ” << std::setw(8) << std::hex << decimalValue << std::endl;” paziņojumā tiek izdrukāts heksadecimālais skaitlis 47 ar polsterējumu setw(8). “std::setw(8)” izmanto manipulatoru “std::setw” ar argumentu 8, norādot minimālo izvades platumu 8 rakstzīmes.
“std::hex” izmanto “std::hex” manipulatoru, kas liek straumei interpretēt nākamo vērtību kā heksadecimālu, kā paskaidrots vienā no dotajiem piemēriem. Konsolē tiek izdrukāta šāda izvade:
Baitu datu hex vērtību drukāšana
Strādājot ar baitu datiem, parasti katrs baits tiek attēlots kā divciparu heksadecimālā vērtība. To var panākt, nodrošinot, ka platums ir iestatīts uz 2 un izmantojot “std::setfill('0')”, lai aizpildītu sākuma nulles. Tālāk ir sniegts piemērs, kas palīdz saprast, kā var izdrukāt baitu datu hex vērtību:
#include#include
int galvenais ( ) {
neparakstīts char byteData = 0xAB;
std::cout << 'Baitu datu heksadecimālais attēlojums ir:
<< std::setw ( 2 ) << std::setfill ( '0' ) << std::hex << static_cast < starpt > ( baitu dati )
<< std::endl;
atgriezties 0 ;
}
Šeit “std::setw(2)” nodrošina, ka katrs baits ir attēlots ar minimālo platumu 2 rakstzīmes, un “std::setfill('0')” norāda, ka platuma aizpildīšanai jāizmanto sākuma nulles.
Šī iepriekš dotā programma demonstrē progresīvāku pieeju heksadecimālās vērtības drukāšanai C++ valodā ar īpašu formatējumu. Sadalīsim to, lai labāk izprastu:
Virsraksti
Galvenā funkcija
Galvenajā funkcijā neparakstīts “byteData = 0xAB;” char ir definēts, kas deklarē neparakstītu char mainīgo ar nosaukumu “byteData” un piešķir tam heksadecimālo vērtību “0xAB”. Paziņojums “std::cout << “Baitu datu heksadecimālais attēlojums ir: “:”, ziņojums tiek izvadīts konsolei, izmantojot izvades straumi.
'<< std::setw(2) << std::setfill('0') << std::hex << static_cast
std::setw(2): Tas iestata minimālo izvades platumu līdz 2 rakstzīmēm.
std::setfill('0'): Tas norāda, ka jebkurš polsterējums, kas nepieciešams, lai sasniegtu minimālo platumu, ir jāaizpilda ar rakstzīmi “0”.
std::hex: Tas liek straumei interpretēt nākamo vērtību kā heksadecimālu.
static_cast
std::endl: Pēc drukāšanas tiek ievietota jaunrindas rakstzīme.
Šīs programmas izvade, kas tiek izdrukāta uz konsoles, ir parādīta šajā fragmentā:
Secinājums
Heksadecimālo vērtību drukāšana valodā C++ ietver pieejamo rīku izpratni un atbilstošās metodes izvēli, pamatojoties uz konkrētajām prasībām. Neatkarīgi no tā, vai izvēlaties “std::hex” manipulatoru, “printf” funkciju vai formatēšanas rīku kombināciju polsterēšanai un sākuma nullēm, jebkuram C++ programmētājam ir ļoti svarīgi labi pārzināt šīs metodes. Pārdomāti izmantojot šīs metodes, jūs varat nodrošināt, ka jūsu heksadecimālās vērtības tiek parādītas precīzi un vizuāli pievilcīgā formātā, kas veicina jūsu C++ koda vispārējo lasāmību un skaidrību.