I C++-programmering er utskrift av heksadesimale verdier et vanlig krav. Enten du arbeider med minneadresser, utfører bitvise operasjoner eller håndterer heksadesimale representasjoner av data, er det viktig å forstå de ulike metodene for å effektivt vise heksadesimale verdier. Denne artikkelen utforsker de ulike metodene og teknikkene for å skrive ut de heksadesimale verdiene i C++, og belyser deres applikasjoner og brukstilfeller.
Skrive ut hex-verdiene ved å bruke Std::hex
En enkel måte å skrive ut de heksadesimale verdiene i C++ er å bruke 'std::hex'-manipulatoren levert av
#include
#include
int main ( ) {
int desimalverdi = 907 ;
std::cout << 'Den heksadesimale verdien er: ' << std::hex << desimalverdi << std::endl;
komme tilbake 0 ;
}
I dette eksemplet blir 'std::hex'-manipulatoren brukt på 'std::cout'-utdatastrømmen før du skriver ut 'decimalValue'-heltallet. Etter å ha skrevet ut hex-verdien, går strømmen tilbake til normal oppførsel. Denne koden demonstrerer perfekt hvordan du skriver ut en heksadesimal verdi ved å bruke 'std::hex'-manipulatoren i C++. Her er en oversikt over koden:
Overskrifter
Hovedfunksjon
'int desimalverdi = 907;' erklærer «decimalValue»-variabelen av typen «int» og tildeler den desimalverdien 907.
'std::cout << 'Den heksadesimale verdien er: ' << std::hex << desimalverdi << std::endl;' skriver ut «Heksadesimalverdi:» etterfulgt av den heksadesimale representasjonen av «desimalverdi».
«std::hex» instruerer utdatastrømmen om å tolke følgende verdi som heksadesimal. Variabelen 'decimalValue' inneholder desimalverdien som skal konverteres til hex. 'std::endl' setter inn et linjeskifttegn etter utskrift. Til slutt, denne koden skriver nå ut «Heksadesimal verdi: 38B» som du kan se i følgende utdatabit:
Skrive ut hex-verdiene ved å bruke '%x'-formatspesifikasjonen
For de som er kjent med C-programmeringsspråket, skriver 'printf'-funksjonen konsist ut de heksadesimale verdiene i C++. Mens C++ tilbyr
int main ( ) {
int desimalverdi = 1256 ;
printf ( 'Den heksadesimale verdien med printf er: %x \n ' , desimalverdi ) ;
komme tilbake 0 ;
}
I dette eksemplet indikerer '%x'-formatspesifikasjonen i 'printf'-funksjonen at det tilsvarende argumentet skal skrives ut i heksadesimal. Den gitte koden er et perfekt eksempel på å skrive ut en heksadesimal verdi ved å bruke 'printf' i C++. La oss bryte det ned:
Overskrifter
Hovedfunksjon
'int desimalverdi = 1256;' erklærer og tildeler desimalverdien 1256 til en heltallsvariabel kalt «decimalValue». 'printf' i 'printf('Den heksadesimale verdien med printf er: %x\n', desimalverdi);' setningen kaller 'printf'-funksjonen for å skrive ut den formaterte utgangen. '%x' er 'formatspesifikatoren' som indikerer at følgende argument skal skrives ut som et små heksadesimalt tall. Til slutt setter '\n' inn et linjeskifttegn etter utskrift. Denne koden sender ut 'Den heksadesimale verdien med printf er 4e8' til konsollen som vist i følgende utdatabit:
Skrive ut hex-verdiene med polstring
Når du arbeider med heksadesimale verdier, spesielt minneadresser, er en konsistent bredde eller utfylling ofte ønskelig. Dette kan oppnås ved å bruke 'std::setw'-manipulatoren som leveres av
#include
int main ( ) {
int desimalverdi = 47 ;
std::cout << 'Den heksadesimale verdien med utfylling er: ' << std::setw ( 8 ) << std::hex << desimalverdi << std::endl;
komme tilbake 0 ;
}
I dette eksemplet sørger std::setw(8) for at den heksadesimale verdien skrives ut med en minimumsbredde på 8 tegn. Dette er spesielt nyttig for å justere verdiene i kolonner eller med minneadresser.
La oss bryte koden og forstå hver linje en etter en:
Overskrifter
Hovedfunksjon
'int desimalverdi = 47;' erklærer og tilordner desimalverdien 47 til en heltallsvariabel kalt «decimalValue».
'std::cout << 'Den heksadesimale verdien med utfylling er: ' << std::setw(8) << std::hex << desimalverdi << std::endl;' setningen skriver ut det heksadesimale tallet 47 med setw(8)-utfyllingen. «std::setw(8)» bruker «std::setw»-manipulatoren med et argument på 8, og spesifiserer en minimum utdatabredde på 8 tegn.
'std::hex' bruker 'std::hex'-manipulatoren som forteller strømmen å tolke neste verdi som heksadesimal som forklart i et av eksemplene. Følgende utdata skrives ut til konsollen:
Skrive ut hex-verdiene til bytedata
Når du arbeider med bytedata, er det vanlig å representere hver byte som en tosifret heksadesimal verdi. Dette kan oppnås ved å sørge for at bredden er satt til 2 og bruke 'std::setfill('0')' for å fylle de innledende nullene. Følgende er et eksempel for å hjelpe deg å forstå hvordan utskrift av heksadesimale verdier for bytedata kan gjøres:
#include#include
int main ( ) {
usignert char byteData = 0xAB;
std::cout << 'Den heksadesimale representasjonen av bytedata er: '
<< std::setw ( 2 ) << std::setfill ( '0' ) << std::hex << static_cast < int > ( byteData )
<< std::endl;
komme tilbake 0 ;
}
Her sikrer 'std::setw(2)' at hver byte er representert med en minimumsbredde på 2 tegn, og 'std::setfill('0')' spesifiserer at innledende nuller skal brukes for å fylle bredden.
Dette tidligere gitte programmet demonstrerer en mer avansert tilnærming til å skrive ut en heksadesimal verdi i C++ med spesifikk formatering. La oss dele det ned for å få en bedre forståelse:
Overskrifter
Hovedfunksjon
I hovedfunksjonen, en usignert 'byteData = 0xAB;' char er definert som erklærer en usignert char-variabel kalt 'byteData' og tildeler den heksadesimale verdien av '0xAB'. 'std::cout << 'Den heksadesimale representasjonen av bytedata er: ':' utgir meldingen til konsollen ved å bruke utdatastrømmen.
'<< std::setw(2) << std::setfill('0') << std::hex << static_cast
std::setw(2): Den setter minimum utdatabredde til 2 tegn.
std::setfill('0'): Det spesifiserer at all utfylling som er nødvendig for å nå minimumsbredden, skal fylles med tegnet '0'.
std::hex: Det ber strømmen om å tolke neste verdi som heksadesimal.
static_cast
std::endl: Det setter inn et linjeskifttegn etter utskrift.
Utdataene fra dette programmet som skrives ut på konsollen, vises i følgende utdrag:
Konklusjon
Å skrive ut heksadesimale verdier i C++ innebærer å forstå de tilgjengelige verktøyene og velge riktig metode basert på de spesifikke kravene. Enten du velger 'std::hex'-manipulatoren, 'printf'-funksjonen eller en kombinasjon av formateringsverktøy for utfylling og innledende nuller, er det viktig å ha en solid forståelse av disse teknikkene for enhver C++-programmerer. Ved å bruke disse metodene med omtanke, kan du sikre at de heksadesimale verdiene vises nøyaktig og i et visuelt tiltalende format som bidrar til den generelle lesbarheten og klarheten til C++-koden.