C++ programmeerimisel on kuueteistkümnendsüsteemi väärtuste printimine tavaline nõue. Olenemata sellest, kas töötate mäluaadressidega, teete bitipõhiseid toiminguid või tegelete andmete kuueteistkümnendsüsteemiga, on oluline mõista erinevaid meetodeid, et kuvada kuueteistkümnendväärtusi. Selles artiklis uuritakse erinevaid meetodeid ja tehnikaid kuueteistkümnendsüsteemi väärtuste printimiseks C++ keeles, heidates valgust nende rakendustele ja kasutusjuhtudele.
Kuueteistkümnendväärtuste printimine kasutades Std::hex
Üks lihtne viis kuueteistkümnendsüsteemi väärtuste printimiseks C++ keeles on kasutada päises
#include
#include
int main ( ) {
int decimalValue = 907 ;
std::cout << 'Kuueteistkümnendsüsteemi väärtus on: << std::hex << kümnendVäärtus << std::endl;
tagasi 0 ;
}
Selles näites rakendatakse manipulaatorit 'std::hex' väljundvoogu 'std::cout' enne 'decimalValue' täisarvu printimist. Pärast kuueteistkümnendväärtuse printimist taastatakse voog oma tavapärasele käitumisele. See kood näitab suurepäraselt, kuidas printida kuueteistkümnendväärtust, kasutades C++ manipulaatorit 'std::hex'. Siin on koodi jaotus:
Päised
Peamine funktsioon
'int decimalValue = 907;' deklareerib „int” tüüpi muutuja „decimalValue” ja määrab selle kümnendväärtusega 907.
'std::cout << 'Kuueteistkümnendsüsteemi väärtus on: ' << std::hex << decimalValue << std::endl;' prindib välja „Kuueteistkümnendväärtus:”, millele järgneb „decimalValue” kuueteistkümnendsüsteemi esitus.
„std::hex” juhendab väljundvoogu tõlgendama järgmist väärtust kuueteistkümnendsüsteemina. Muutuja „DecimalValue” sisaldab kümnendväärtust, mis teisendatakse kuueteistkümnendväärtuseks. 'std::endl' lisab pärast printimist reavahetuse. Lõpuks prindib see kood nüüd välja „Kuueteistkümnendväärtus: 38B”, nagu näete järgmises väljundi koodilõigul:
Kuueteistkümnendväärtuste printimine '%x' vorminguspetsiifi abil
Neile, kes tunnevad C programmeerimiskeelt, prindib funktsioon 'printf' lühidalt kuueteistkümnendsüsteemi väärtused C++ keeles. Kui C++ pakub lähenemist
int main ( ) {
int decimalValue = 1256 ;
printf ( 'Kuueteistkümnendsüsteemi väärtus printf-iga on: %x \n ' , kümnendValue ) ;
tagasi 0 ;
}
Selles näites näitab vormingu spetsifikaat '%x' funktsiooni 'printf' sees, et vastav argument tuleks trükkida kuueteistkümnendsüsteemis. Antud kood on suurepärane näide kuueteistkümnendsüsteemi väärtuse printimisest, kasutades 'printf' keeles C++. Teeme selle lahti:
Päised
Peamine funktsioon
'int decimalValue = 1256;' deklareerib ja määrab kümnendväärtuse 1256 täisarvulisele muutujale nimega „decimalValue”. 'printf' lahtris 'printf('Kuueteistkümnendsüsteemi väärtus printf-iga on: %x\n', kümnendValue);' avaldus kutsub vormindatud väljundi printimiseks funktsiooni 'printf'. '%x' on 'vorminguspetsifikaator', mis näitab, et järgmine argument tuleks trükkida väiketähtedega kuueteistkümnendarvuna. Lõpuks lisab '\n' pärast printimist reavahetuse. See kood väljastab konsooli 'Kuueteistkümnendsüsteemi väärtus printf-iga on 4e8', nagu on näha järgmises väljundi lõigus:
Kuueteistkümnendväärtuste printimine polsterdusega
Kuueteistkümnendsüsteemi väärtuste, eriti mäluaadresside käsitlemisel on sageli soovitav ühtlane laius või polsterdus. Seda saab saavutada päises
#include
int main ( ) {
int decimalValue = 47 ;
std::cout << 'Kuueteistkümnendsüsteemi väärtus koos täidisega on: << std::setw ( 8 ) << std::hex << kümnendVäärtus << std::endl;
tagasi 0 ;
}
Selles näites tagab std::setw(8), et kuueteistkümnendsüsteemi väärtus trükitakse minimaalse laiusega 8 tähemärki. See on eriti kasulik väärtuste joondamiseks veergudes või mäluaadressidega.
Murrame koodi ja mõistame iga rida ükshaaval:
Päised
Peamine funktsioon
'int decimalValue = 47;' deklareerib ja määrab kümnendväärtuse 47 täisarvulisele muutujale nimega „decimalValue”.
'std::cout << 'Kuueteistkümnendsüsteemi väärtus koos täidisega on: ' << std::setw(8) << std::hex << decimalValue << std::endl;' lause prindib kuueteistkümnendsüsteemi numbri 47 koos täidisega setw(8). „std::setw(8)” rakendab manipulaatorit „std::setw” argumendiga 8, määrates väljundi minimaalseks laiuseks 8 tähemärki.
'std::hex' rakendab manipulaatorit 'std::hex', mis käsib voos tõlgendada järgmist väärtust kuueteistkümnendsüsteemina, nagu on selgitatud ühes antud näites. Konsooli prinditakse järgmine väljund:
Baitiandmete kuueteistkümnendväärtuste printimine
Baitiandmetega töötamisel esitatakse iga bait tavaliselt kahekohalise kuueteistkümnendsüsteemi väärtusena. Seda saab saavutada, tagades, et laius on seatud väärtusele 2 ja kasutades eesolevate nullide täitmiseks 'std::setfill('0')'. Järgnev on näide, mis aitab teil mõista, kuidas saab baitandmete kuueteistkümnendväärtusi printida.
#include#include
int main ( ) {
märgita tähemärk byteData = 0xAB;
std::cout << 'Baitide andmete kuueteistkümnendsüsteem on järgmine:
<< std::setw ( 2 ) << std::setfill ( '0' ) << std::hex << static_cast < int > ( byteData )
<< std::endl;
tagasi 0 ;
}
Siin tagab 'std::setw(2)', et iga bait on esindatud minimaalse laiusega 2 tähemärki, ja 'std::setfill('0')' määrab, et laiuse täitmiseks tuleks kasutada eesolevaid nulle.
See eelnevalt antud programm demonstreerib täpsemat lähenemist kuueteistkümnendsüsteemi väärtuse printimiseks C++ keeles spetsiifilise vorminguga. Parema mõistmise huvides jagame selle lahti:
Päised
Peamine funktsioon
Põhifunktsioonis märgita 'byteData = 0xAB;' char on määratletud, mis deklareerib märgita char-muutuja nimega „byteData” ja määrab sellele kuueteistkümnendsüsteemi väärtuse „0xAB”. Lause “std::cout << “Baitandmete kuueteistkümnendsüsteem on: “:” väljastab sõnumi konsooli, kasutades väljundvoogu.
'<< std::setw(2) << std::setfill('0') << std::hex << static_cast
std::setw(2): See määrab minimaalse väljundlaiuse 2 tähemärgile.
std::setfill('0'): See määrab, et kõik täidised, mis on vajalikud minimaalse laiuse saavutamiseks, tuleb täita tähemärgiga „0”.
std::hex: See käsib voos tõlgendada järgmist väärtust kuueteistkümnendsüsteemina.
static_cast
std::endl: See lisab pärast printimist reavahetuse.
Selle programmi konsoolile prinditud väljund on näidatud järgmises väljavõttes:
Järeldus
Kuueteistkümnendväärtuste printimine C++ keeles hõlmab saadaolevate tööriistade mõistmist ja konkreetsete nõuete alusel sobiva meetodi valimist. Olenemata sellest, kas valite 'std::hex' manipulaatori, funktsiooni 'printf' või vormindamistööriistade kombinatsiooni polsterdamiseks ja nullide ette viimiseks, on iga C++ programmeerija jaoks nende tehnikate kindel mõistmine hädavajalik. Neid meetodeid läbimõeldult rakendades saate tagada, et teie kuueteistkümnendsüsteemi väärtused kuvatakse täpselt ja visuaalselt atraktiivses vormingus, mis aitab kaasa teie C++ koodi üldisele loetavusele ja selgusele.