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ää
#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
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
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
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ä
#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
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
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
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
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ä.