Kuueteistkümnendväärtuste printimine C++ keeles

Kuueteistkumnendvaartuste Printimine C Keeles



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 pakutavat manipulaatorit 'std::hex'. See manipulaator juhendab väljundvoogu tõlgendama printimisel täisarvude väärtusi kuueteistkümnendsüsteemina. Kujutage ette, et teil on numbreid täis aardelaegas. Kuid tavapärase kümnendsüsteemi asemel on need kõik kirjutatud kuueteistkümnendsüsteemi salakeeles. Nende koodide dešifreerimiseks ja nende tegelike väärtuste avaldamiseks pakub C++ abistavat tööriista nimega 'std::hex'. See maagiline trikk teegis muudab teie väljundvoo dekoodri rõngaks, tõlgides need salapärased kuueteistkümnendarvud koheselt tuttavateks kümnendarvudeks.







#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



: seda kasutatakse tavaliseks sisendiks/väljundiks, näiteks konsooli printimiseks, ja see pakub manipulaatorit „std::hex”, et vormindada väljund kuueteistkümnendsüsteemina.





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 ja 'std::hex', siis 'printf' pakub sisutihedat ja otsest viisi sama tulemuse saavutamiseks.

#include
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

: see päis sisaldab funktsiooni „printf” ja muid standardseid sisend-/väljundfunktsioone. Päis sisaldub C++-ga kaasas olevate teekide komplektis. See toob C-keele teegi funktsionaalsuse, võimaldades C++-l kasutada klassikalisi sisend- ja väljundtehnikaid, mis algselt C-s leidusid kaasamise kaudu.

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 pakutava manipulaatori 'std::setw' abil. Siin on näide HEX-väärtuse printimiseks polsterdusega. See programm demonstreerib, kuidas trükkida kuueteistkümnendsüsteemis C++ keeles täidisega, kasutades päise ja manipulaatori meetodeid.

#include
#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

: see pakub printimiseks põhilisi sisend-/väljundfunktsioone, nagu std::cout voog.

: see pakub vormingumanipulaatoreid, nagu std::setw, mida kasutatakse väljundi välimuse muutmiseks.

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

: see pakub printimiseks põhilisi sisend-/väljundfunktsioone, nagu „std::cout” ja „std::hex”.

: see pakub vormingumanipulaatoreid, nagu „std::setw” ja „std::setfill”, mida kasutatakse väljundi välimuse muutmiseks.

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 (byteData) << std::endl;' lauseahel kasutab väljundi vormindamiseks mitut manipulaatorit.

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 (byteData): see heidab allkirjastamata tähemärgiandmed „int” enne kuueteistkümnendsüsteemiks teisendamist. See ei ole tehniliselt vajalik, kuid seda saab kasutada järjepidevuse tagamiseks mõne vorminguvalikuga.

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.