Heksalaisten arvojen tulostaminen C++:ssa

Heksalaisten Arvojen Tulostaminen C Ssa



C++-ohjelmoinnissa heksadesimaaliarvojen tulostaminen on yleinen vaatimus. Työskenteletpä sitten muistiosoitteiden kanssa, suoritat bittikohtaisia ​​operaatioita tai käsittelet datan heksadesimaaliesitystä, on olennaista ymmärtää eri menetelmiä heksadesimaaliarvojen näyttämiseksi tehokkaasti. Tässä artikkelissa tarkastellaan erilaisia ​​menetelmiä ja tekniikoita heksadesimaaliarvojen tulostamiseksi C++:ssa ja valotetaan niiden sovelluksia ja käyttötapauksia.

Heksa-arvojen tulostaminen käyttämällä Std::hex

Yksi suoraviivainen tapa tulostaa heksadesimaaliarvot C++:ssa on käyttää -otsikon tarjoamaa 'std::hex'-manipulaattoria. Tämä manipulaattori käskee tulosvirran tulkitsemaan kokonaislukuarvot heksadesimaalilukuina tulostettaessa. Kuvittele, että sinulla on aarrearkku täynnä numeroita. Mutta tavallisen desimaalijärjestelmän sijaan ne kaikki on kirjoitettu heksadesimaalikielellä. Näiden koodien tulkitsemiseksi ja niiden todellisten arvojen paljastamiseksi C++ tarjoaa hyödyllisen työkalun nimeltä 'std::hex'. Tämä -kirjaston taikatemppu muuttaa tulostevirtasi dekooderin renkaaksi, mikä muuntaa salaperäiset heksadesimaaliluvut välittömästi tutuiksi desimaaliluvuiksi.







#include
#include
int main ( ) {
int decimalValue = 907 ;
std::cout << 'Heksadesimaaliarvo on: << std::hex << desimaaliarvo << std::endl;
palata 0 ;
}


Tässä esimerkissä 'std::hex'-manipulaattoria käytetään 'std::cout'-lähtövirtaan ennen 'decimalValue'-kokonaisluvun tulostamista. Hex-arvon tulostamisen jälkeen virta palautuu normaaliin toimintaansa. Tämä koodi osoittaa täydellisesti, kuinka heksadesimaaliarvo tulostetaan C++:n 'std::hex'-manipulaattorilla. Tässä koodin erittely:



Otsikot



: Sitä käytetään perussyöttöön/tulostukseen, kuten konsoliin tulostamiseen, ja se tarjoaa 'std::hex'-manipulaattorin, joka muotoilee tulosteen heksadesimaalimuotoon.





Päätoiminto

'int decimalValue = 907;' ilmoittaa decimalValue-muuttujan, jonka tyyppi on int, ja määrittää sille desimaaliarvon 907.



'std::cout << 'Heksadesimaaliarvo on: ' << std::hex << decimalValue << std::endl;' tulostaa 'Hexadecimal value:' ja sen jälkeen 'decimalValue' heksadesimaalimuodon.

'std::hex' ohjeistaa lähtövirtaa tulkitsemaan seuraavan arvon heksadesimaalilukuna. 'DecimalValue' -muuttuja sisältää desimaaliarvon, joka muunnetaan heksadesimaaliarvoksi. 'std::endl' lisää rivinvaihdon tulostuksen jälkeen. Lopuksi tämä koodi tulostaa nyt 'heksadesimaaliarvon: 38B', kuten näet seuraavasta tulostepätkästä:

Heksa-arvojen tulostaminen '%x'-muodon määrittäjällä

Niille, jotka tuntevat C-ohjelmointikielen, 'printf'-funktio tulostaa tiiviisti heksadesimaaliarvot C++:ssa. Vaikka C++ tarjoaa - ja 'std::hex'-lähestymistavan, 'printf' tarjoaa tiiviin ja suoran tavan saavuttaa sama tulos.

#include
int main ( ) {
int decimalValue = 1256 ;
printf ( 'Heksadesimaaliarvo printf:llä on: %x \n ' , desimaaliarvo ) ;
palata 0 ;
}


Tässä esimerkissä '%x'-muodon määrittäjä 'printf'-funktiossa osoittaa, että vastaava argumentti tulee tulostaa heksadesimaalimuodossa. Annettu koodi on täydellinen esimerkki heksadesimaaliarvon tulostamisesta 'printf':llä C++:ssa. Puretaan se:

Otsikot

: Tämä otsikko sisältää printf-funktion ja muut vakiosyöttö-/tulostustoiminnot. -otsikko sisältyy C++:n mukana tuleviin kirjastoihin. Se tuo toiminnallisuudet C-kielen -kirjastosta, jolloin C++ voi hyödyntää klassisia syöttö- ja tulostustekniikoita, jotka löytyivät alun perin C:stä -sisällytyksen kautta.

Päätoiminto

'int decimalValue = 1256;' ilmoittaa ja määrittää desimaaliarvon 1256 kokonaislukumuuttujalle nimeltä 'decimalValue'. 'printf' kohdassa 'printf('Heksadesimaaliarvo printf:llä on: %x\n', desimaaliarvo);' lauseke kutsuu 'printf'-funktiota muotoillun tulosteen tulostamiseksi. '%x' on 'muodon määrittäjä', joka osoittaa, että seuraava argumentti tulee tulostaa pienillä kirjaimilla heksadesimaalilukuna. Lopuksi '\n' lisää rivinvaihdon tulostuksen jälkeen. Tämä koodi tulostaa konsoliin 'Heksadesimaaliarvo, jossa printf on 4e8', kuten seuraavasta tulostepätkästä näkyy:

Heksa-arvojen tulostaminen pehmusteella

Kun käsitellään heksadesimaaliarvoja, erityisesti muistiosoitteita, tasainen leveys tai täyttö on usein toivottavaa. Tämä voidaan saavuttaa käyttämällä -otsikon tarjoamaa 'std::setw'-manipulaattoria. Tässä on esimerkki HEX-arvon tulostamisesta täytteellä. Tämä ohjelma näyttää, kuinka heksadesimaaliarvo tulostetaan C++-kielellä täytetyllä -otsikko- ja manipulaattorimenetelmillä.

#include
#include
int main ( ) {
int decimalValue = 47 ;
std::cout << 'Heksadesimaaliarvo täytetyksellä on: ' << std::setw ( 8 ) << std::hex << desimaaliarvo << std::endl;
palata 0 ;
}


Tässä esimerkissä std::setw(8) varmistaa, että heksadesimaaliarvo tulostetaan vähintään 8 merkin leveydellä. Tämä on erityisen hyödyllistä kohdistettaessa arvoja sarakkeissa tai muistiosoitteiden kanssa.

Rikotaan koodi ja ymmärretään jokainen rivi yksitellen:

Otsikot

: Se tarjoaa perussyöttö-/tulostustoiminnot, kuten std::cout-virran tulostamista varten.

: Se tarjoaa muotoilun muokkaajia, kuten 'std::setw', joita käytetään muokkaamaan tulosteen ulkoasua.

Päätoiminto

'int decimalValue = 47;' ilmoittaa ja määrittää desimaaliarvon 47 kokonaislukumuuttujalle nimeltä 'decimalValue'.

'std::cout << 'Heksadesimaaliarvo täytteellä on: ' << std::setw(8) << std::hex << decimalValue << std::endl;' lauseke tulostaa heksadesimaaliluvun 47 setw(8)-täytteellä. 'std::setw(8)' käyttää 'std::setw'-manipulaattoria argumentilla 8 ja määrittää tulosteen vähimmäisleveyden 8 merkkiä.

'std::hex' käyttää 'std::hex'-manipulaattoria, joka käskee virran tulkitsemaan seuraavan arvon heksadesimaalilukuna, kuten yhdessä annetuista esimerkeistä on selitetty. Konsoliin tulostetaan seuraava tulos:

Tavutietojen heksadesimaaliarvojen tulostaminen

Kun työskentelet tavutietojen kanssa, on tavallista esittää jokainen tavu kaksinumeroisena heksadesimaaliarvona. Tämä voidaan saavuttaa varmistamalla, että leveys on 2 ja käyttämällä 'std::setfill('0')' täyttämään etunollat. Seuraavassa on esimerkki, joka auttaa ymmärtämään, kuinka tavutietojen heksadesimaaliarvot voidaan tulostaa:

#include
#include
int main ( ) {
unsigned char byteData = 0xAB;
std::cout << 'Tavutietojen heksadesimaalinen esitys on:
<< std::setw ( 2 ) << std::setfill ( '0' ) << std::hex << static_cast < int > ( byteData )
<< std::endl;
palata 0 ;
}


Tässä 'std::setw(2)' varmistaa, että jokainen tavu esitetään vähintään 2 merkin leveydellä, ja 'std::setfill('0')' määrittää, että etunollia tulee käyttää leveyden täyttämiseen.

Tämä aiemmin annettu ohjelma osoittaa edistyneemmän lähestymistavan heksadesimaaliarvon tulostamiseen C++:ssa tietyllä muotoilulla. Puretaan se, jotta ymmärrämme paremmin:

Otsikot

: Se tarjoaa perussyöttö-/tulostustoiminnot, kuten 'std::cout' ja 'std::hex'.

: Se tarjoaa muotoilun muokkaajia, kuten 'std::setw' ja 'std::setfill', joita käytetään muokkaamaan tulosteen ulkoasua.

Päätoiminto

Pääfunktiossa allekirjoittamaton 'byteData = 0xAB;' char on määritelty, joka ilmoittaa allekirjoittamattoman char-muuttujan nimeltä byteData ja määrittää sille heksadesimaaliarvon '0xAB'. Lause 'std::cout <<' Tavutietojen heksadesimaalinen esitys on: ':' lähettää viestin konsoliin tulosvirran avulla.

'<< std::setw(2) << std::setfill('0') << std::hex << static_cast (byteData) << std::endl;' lausekeketju käyttää useita manipulaattoreita tulosteen muotoiluun.

std::setw(2): Se asettaa tulosteen vähimmäisleveydeksi 2 merkkiä.

std::setfill('0'): Se määrittää, että kaikki vähimmäisleveyden saavuttamiseen tarvittavat täyttökohdat on täytettävä '0'-merkillä.

std::hex: Se käskee streamia tulkitsemaan seuraavan arvon heksadesimaalilukuna.

static_cast (byteData): Se lähettää allekirjoittamattomat merkkitiedot 'int':ksi ennen muuntamista heksadesimaalimuotoon. Tämä ei ole teknisesti välttämätöntä, mutta sitä voidaan käyttää johdonmukaisuuden vuoksi joidenkin muotoiluvaihtoehtojen kanssa.

std::endl: Se lisää rivinvaihtomerkin tulostuksen jälkeen.

Tämän ohjelman tulos, joka on painettu konsoliin, näkyy seuraavassa katkelmassa:

Johtopäätös

Heksadesimaaliarvojen tulostaminen C++:ssa edellyttää käytettävissä olevien työkalujen ymmärtämistä ja oikean menetelmän valitsemista erityisvaatimusten perusteella. Valitsetpa sitten 'std::hex'-manipulaattorin, 'printf'-toiminnon tai muotoilutyökalujen yhdistelmän täytön ja alkunollien yhdistelmää varten, näiden tekniikoiden vankka käsitys on välttämätöntä jokaiselle C++-ohjelmoijalle. Käyttämällä näitä menetelmiä harkiten voit varmistaa, että heksadesimaaliarvosi näytetään tarkasti ja visuaalisesti houkuttelevassa muodossa, mikä edistää C++-koodisi yleistä luettavuutta ja selkeyttä.