C++లో హెక్స్ విలువలను ముద్రించడం

C Lo Heks Viluvalanu Mudrincadam



C++ ప్రోగ్రామింగ్‌లో, హెక్సాడెసిమల్ విలువలను ముద్రించడం ఒక సాధారణ అవసరం. మెమరీ అడ్రస్‌లతో పని చేసినా, బిట్‌వైస్ ఆపరేషన్‌లను నిర్వహిస్తున్నా లేదా డేటా యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యాలతో వ్యవహరించినా, హెక్స్ విలువలను సమర్థవంతంగా ప్రదర్శించడానికి వివిధ పద్ధతులను గ్రహించడం చాలా అవసరం. ఈ వ్యాసం C++లో హెక్సాడెసిమల్ విలువలను ముద్రించడానికి వివిధ పద్ధతులు మరియు సాంకేతికతలను అన్వేషిస్తుంది, వాటి అప్లికేషన్‌లు మరియు వినియోగ కేసులపై వెలుగునిస్తుంది.

Std::hex ఉపయోగించి హెక్స్ విలువలను ముద్రించడం

C++లో హెక్సాడెసిమల్ విలువలను ప్రింట్ చేయడానికి ఒక సరళమైన మార్గం హెడర్ అందించిన “std::hex” మానిప్యులేటర్‌ని ఉపయోగించడం. ఈ మానిప్యులేటర్ ప్రింటింగ్ చేసేటప్పుడు పూర్ణాంకాల విలువలను హెక్సాడెసిమల్‌గా అర్థం చేసుకోవడానికి అవుట్‌పుట్ స్ట్రీమ్‌ను నిర్దేశిస్తుంది. మీరు సంఖ్యలతో నిండిన నిధిని కలిగి ఉన్నారని ఊహించుకోండి. కానీ సాధారణ దశాంశ వ్యవస్థకు బదులుగా, అవన్నీ హెక్సాడెసిమల్ యొక్క రహస్య భాషలో వ్రాయబడ్డాయి. ఈ కోడ్‌లను అర్థంచేసుకోవడానికి మరియు వాటి నిజమైన విలువలను బహిర్గతం చేయడానికి, C++ “std::hex” అనే సహాయక సాధనాన్ని అందిస్తుంది. లైబ్రరీలోని ఈ మ్యాజిక్ ట్రిక్ మీ అవుట్‌పుట్ స్ట్రీమ్‌ను డీకోడర్ రింగ్‌గా మారుస్తుంది, ఆ రహస్యమైన హెక్సాడెసిమల్ సంఖ్యలను తక్షణమే వాటి సుపరిచితమైన దశాంశ ప్రతిరూపాలుగా అనువదిస్తుంది.







# చేర్చండి
# చేర్చండి
పూర్ణాంక ప్రధాన ( ) {
int decimalValue = 907 ;
std::cout << 'హెక్సాడెసిమల్ విలువ:' << std:: hex << దశాంశ విలువ << std::endl;
తిరిగి 0 ;
}


ఈ ఉదాహరణలో, “దశాంశ విలువ” పూర్ణాంకాన్ని ముద్రించే ముందు “std::hex” మానిప్యులేటర్ “std::cout” అవుట్‌పుట్ స్ట్రీమ్‌కు వర్తించబడుతుంది. హెక్స్ విలువను ముద్రించిన తర్వాత, స్ట్రీమ్ దాని సాధారణ ప్రవర్తనకు మార్చబడుతుంది. C++లో “std::hex” మానిప్యులేటర్‌ని ఉపయోగించి హెక్సాడెసిమల్ విలువను ఎలా ముద్రించాలో ఈ కోడ్ ఖచ్చితంగా చూపుతుంది. కోడ్ యొక్క విచ్ఛిన్నం ఇక్కడ ఉంది:



శీర్షికలు



: ఇది కన్సోల్‌కి ప్రింటింగ్ వంటి ప్రాథమిక ఇన్‌పుట్/అవుట్‌పుట్ కోసం ఉపయోగించబడుతుంది మరియు అవుట్‌పుట్‌ను హెక్సాడెసిమల్‌గా ఫార్మాట్ చేయడానికి “std::hex” మానిప్యులేటర్‌ను అందిస్తుంది.





ప్రధాన విధి

“పూర్ణాంక దశాంశ విలువ = 907;” 'పూర్ణాంక' రకానికి చెందిన 'దశాంశ విలువ' వేరియబుల్‌ని ప్రకటించింది మరియు దానిని 907 దశాంశ విలువతో కేటాయిస్తుంది.



“std::cout << “హెక్సాడెసిమల్ విలువ: ” << std::hex << decimalValue << std::endl;” 'హెక్సాడెసిమల్ విలువ:'ని ప్రింట్ చేస్తుంది, తర్వాత 'దశాంశ విలువ' యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యం ఉంటుంది.

కింది విలువను హెక్సాడెసిమల్‌గా అర్థం చేసుకోవడానికి “std::hex” అవుట్‌పుట్ స్ట్రీమ్‌ని నిర్దేశిస్తుంది. 'దశాంశ విలువ' వేరియబుల్ హెక్స్‌గా మార్చవలసిన దశాంశ విలువను కలిగి ఉంటుంది. 'std::endl' ముద్రించిన తర్వాత కొత్త లైన్ అక్షరాన్ని చొప్పిస్తుంది. చివరగా, ఈ కోడ్ ఇప్పుడు మీరు క్రింది అవుట్‌పుట్ స్నిప్పెట్‌లో చూడగలిగే విధంగా “హెక్సాడెసిమల్ విలువ: 38B”ని ప్రింట్ చేస్తుంది:

'%x' ఫార్మాట్ స్పెసిఫైయర్ ఉపయోగించి హెక్స్ విలువలను ముద్రించడం

C ప్రోగ్రామింగ్ లాంగ్వేజ్ తెలిసిన వారికి, “printf” ఫంక్షన్ C++లో హెక్సాడెసిమల్ విలువలను సంక్షిప్తంగా ముద్రిస్తుంది. C++ మరియు “std::hex” విధానాన్ని అందిస్తే, “printf” అదే ఫలితాన్ని సాధించడానికి సంక్షిప్త మరియు ప్రత్యక్ష మార్గాన్ని అందిస్తుంది.

# చేర్చండి
పూర్ణాంక ప్రధాన ( ) {
int decimalValue = 1256 ;
printf ( 'printfతో హెక్సాడెసిమల్ విలువ: %x \n ' , దశాంశ విలువ ) ;
తిరిగి 0 ;
}


ఈ ఉదాహరణలో, “printf” ఫంక్షన్‌లోని “%x” ఫార్మాట్ స్పెసిఫైయర్ సంబంధిత ఆర్గ్యుమెంట్ హెక్సాడెసిమల్‌లో ముద్రించబడాలని సూచిస్తుంది. C++లో “printf”ని ఉపయోగించి హెక్సాడెసిమల్ విలువను ముద్రించడానికి ఇచ్చిన కోడ్ సరైన ఉదాహరణ. దానిని విచ్ఛిన్నం చేద్దాం:

శీర్షికలు

: ఈ హెడర్‌లో “printf” ఫంక్షన్ మరియు ఇతర ప్రామాణిక ఇన్‌పుట్/అవుట్‌పుట్ ఫంక్షన్‌లు ఉంటాయి. హెడర్ C++తో వచ్చే లైబ్రరీల సూట్‌లో చేర్చబడింది. ఇది C లాంగ్వేజ్ యొక్క లైబ్రరీ నుండి కార్యాచరణను తెస్తుంది, చేర్చడం ద్వారా C లో మొదట కనుగొనబడిన క్లాసిక్ ఇన్‌పుట్ మరియు అవుట్‌పుట్ టెక్నిక్‌లను ఉపయోగించుకోవడానికి C++ని అనుమతిస్తుంది.

ప్రధాన విధి

“పూర్ణాంక దశాంశ విలువ = 1256;” 'దశాంశ విలువ' అనే పూర్ణాంక వేరియబుల్‌కు 1256 దశాంశ విలువను ప్రకటిస్తుంది మరియు కేటాయిస్తుంది. “printf”లోని “printf” (“printfతో హెక్సాడెసిమల్ విలువ: %x\n”, decimalValue);” స్టేట్‌మెంట్ ఫార్మాట్ చేసిన అవుట్‌పుట్‌ను ప్రింట్ చేయడానికి “printf” ఫంక్షన్‌ని పిలుస్తుంది. “%x” అనేది “ఫార్మాట్ స్పెసిఫైయర్”, ఇది క్రింది ఆర్గ్యుమెంట్‌ను చిన్న హెక్సాడెసిమల్ సంఖ్యగా ముద్రించాలని సూచిస్తుంది. చివరగా, “\n” ప్రింటింగ్ తర్వాత కొత్త లైన్ అక్షరాన్ని చొప్పిస్తుంది. ఈ కోడ్ క్రింది అవుట్‌పుట్ స్నిప్పెట్‌లో కనిపించే విధంగా కన్సోల్‌కు “printfతో హెక్సాడెసిమల్ విలువ 4e8”ని అందిస్తుంది:

పాడింగ్‌తో హెక్స్ విలువలను ముద్రించడం

హెక్సాడెసిమల్ విలువలతో వ్యవహరించేటప్పుడు, ముఖ్యంగా మెమరీ చిరునామాలు, స్థిరమైన వెడల్పు లేదా పాడింగ్ తరచుగా కోరబడుతుంది. హెడర్ అందించిన “std::setw” మానిప్యులేటర్‌ని ఉపయోగించి దీన్ని సాధించవచ్చు. పాడింగ్‌తో HEX విలువను ఎలా ముద్రించాలో ఇక్కడ ఒక ఉదాహరణ ఉంది. హెడర్ మరియు మానిప్యులేటర్ పద్ధతులను ఉపయోగించి ప్యాడింగ్‌తో C++లో హెక్సాడెసిమల్ విలువను ఎలా ముద్రించాలో ఈ ప్రోగ్రామ్ ప్రదర్శిస్తుంది.

# చేర్చండి
# చేర్చండి
పూర్ణాంక ప్రధాన ( ) {
int decimalValue = 47 ;
std::cout << 'పాడింగ్‌తో హెక్సాడెసిమల్ విలువ:' << std::setw ( 8 ) << std:: hex << దశాంశ విలువ << std::endl;
తిరిగి 0 ;
}


ఈ ఉదాహరణలో, std::setw(8) హెక్సాడెసిమల్ విలువ కనీసం 8 అక్షరాల వెడల్పుతో ముద్రించబడిందని నిర్ధారిస్తుంది. నిలువు వరుసలలో లేదా మెమరీ చిరునామాలతో విలువలను సమలేఖనం చేయడానికి ఇది ప్రత్యేకంగా ఉపయోగపడుతుంది.

మనం కోడ్‌ను విచ్ఛిన్నం చేసి, ప్రతి పంక్తిని ఒక్కొక్కటిగా అర్థం చేసుకుందాం:

శీర్షికలు

: ఇది ప్రింటింగ్ కోసం “std::cout” స్ట్రీమ్ వంటి ప్రాథమిక ఇన్‌పుట్/అవుట్‌పుట్ కార్యాచరణను అందిస్తుంది.

: ఇది అవుట్‌పుట్ రూపాన్ని సవరించడానికి ఉపయోగించే “std::setw” వంటి ఫార్మాటింగ్ మానిప్యులేటర్‌లను అందిస్తుంది.

ప్రధాన విధి

“పూర్ణాంక దశాంశ విలువ = 47;” 'దశాంశ విలువ' అనే పూర్ణాంక వేరియబుల్‌కు 47 దశాంశ విలువను ప్రకటిస్తుంది మరియు కేటాయిస్తుంది.

“std::cout << “ప్యాడింగ్‌తో హెక్సాడెసిమల్ విలువ: ” << std::setw(8) << std::hex << decimalValue << std::endl;” ప్రకటన setw(8) పాడింగ్‌తో హెక్సాడెసిమల్ సంఖ్య 47ను ముద్రిస్తుంది. “std::setw(8)” అనేది “std::setw” మానిప్యులేటర్ ని 8 ఆర్గ్యుమెంట్‌తో వర్తింపజేస్తుంది, కనిష్ట అవుట్‌పుట్ వెడల్పు 8 అక్షరాలను పేర్కొంటుంది.

'std::hex' అనేది 'std::hex' మానిప్యులేటర్‌ని వర్తింపజేస్తుంది, ఇది ఇవ్వబడిన ఉదాహరణలలో ఒకదానిలో వివరించిన విధంగా తదుపరి విలువను హెక్సాడెసిమల్‌గా అర్థం చేసుకోవడానికి స్ట్రీమ్‌కు చెబుతుంది. కింది అవుట్‌పుట్ కన్సోల్‌కు ముద్రించబడింది:

బైట్ డేటా యొక్క హెక్స్ విలువలను ముద్రించడం

బైట్ డేటాతో పని చేస్తున్నప్పుడు, ప్రతి బైట్‌ను రెండు అంకెల హెక్సాడెసిమల్ విలువగా సూచించడం సర్వసాధారణం. వెడల్పు 2కి సెట్ చేయబడిందని మరియు ప్రముఖ సున్నాలను పూరించడానికి 'std::setfill('0')'ని ఉపయోగించడం ద్వారా దీనిని సాధించవచ్చు. బైట్ డేటా యొక్క హెక్స్ విలువలను ఎలా ముద్రించవచ్చో అర్థం చేసుకోవడానికి క్రింది ఉదాహరణ మీకు సహాయం చేస్తుంది:

# చేర్చండి
# చేర్చండి
పూర్ణాంక ప్రధాన ( ) {
సంతకం చేయని చార్ బైట్‌డేటా = 0xAB;
std::cout << 'బైట్ డేటా యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యం:'
<< std::setw ( 2 ) << std::setfill ( '0' ) << std:: hex << స్టాటిక్_కాస్ట్ < int > ( byteData )
<< std::endl;
తిరిగి 0 ;
}


ఇక్కడ, “std::setw(2)” ప్రతి బైట్ కనీస వెడల్పు 2 అక్షరాలతో సూచించబడుతుందని నిర్ధారిస్తుంది మరియు “std::setfill(‘0’)” వెడల్పును పూరించడానికి లీడింగ్ సున్నాలను ఉపయోగించాలని నిర్దేశిస్తుంది.

ఈ మునుపు ఇచ్చిన ప్రోగ్రామ్ నిర్దిష్ట ఫార్మాటింగ్‌తో C++లో హెక్సాడెసిమల్ విలువను ముద్రించడానికి మరింత అధునాతన విధానాన్ని ప్రదర్శిస్తుంది. ఒక మంచి అవగాహన కోసం దానిని విచ్ఛిన్నం చేద్దాం:

శీర్షికలు

: ఇది ప్రింటింగ్ కోసం “std::cout” మరియు “std::hex” వంటి ప్రాథమిక ఇన్‌పుట్/అవుట్‌పుట్ కార్యాచరణను అందిస్తుంది.

: ఇది అవుట్‌పుట్ రూపాన్ని సవరించడానికి ఉపయోగించే “std::setw” మరియు “std::setfill” వంటి ఫార్మాటింగ్ మానిప్యులేటర్‌లను అందిస్తుంది.

ప్రధాన విధి

ప్రధాన ఫంక్షన్‌లో, సంతకం చేయని “byteData = 0xAB;” char నిర్వచించబడింది, ఇది సంతకం చేయని char వేరియబుల్‌ని “byteData” పేరుతో ప్రకటిస్తుంది మరియు దానికి “0xAB” హెక్సాడెసిమల్ విలువను కేటాయిస్తుంది. “std::cout << “బైట్ డేటా యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యం: “:” స్టేట్‌మెంట్ అవుట్‌పుట్ స్ట్రీమ్‌ని ఉపయోగించి కన్సోల్‌కు సందేశాన్ని అవుట్‌పుట్ చేస్తుంది.

“<< std::setw(2) << std::setfill(‘0’) << std::hex << static_cast (byteData) << std::endl;” స్టేట్‌మెంట్ చైన్ అవుట్‌పుట్‌ను ఫార్మాట్ చేయడానికి బహుళ మానిప్యులేటర్‌లను వర్తింపజేస్తుంది.

std::setw(2): ఇది కనిష్ట అవుట్‌పుట్ వెడల్పును 2 అక్షరాలకు సెట్ చేస్తుంది.

std::setfill(‘0’): కనిష్ట వెడల్పును చేరుకోవడానికి అవసరమైన ఏదైనా ప్యాడింగ్‌ను “0” అక్షరంతో నింపాలని ఇది నిర్దేశిస్తుంది.

std::hex: ఇది తదుపరి విలువను హెక్సాడెసిమల్‌గా అర్థం చేసుకోమని స్ట్రీమ్‌కి చెబుతుంది.

static_cast (byteData): ఇది హెక్సాడెసిమల్‌కి మార్చడానికి ముందు సంతకం చేయని చార్ డేటాను “int”కి ప్రసారం చేస్తుంది. ఇది సాంకేతికంగా అవసరం లేదు కానీ కొన్ని ఫార్మాటింగ్ ఎంపికలతో స్థిరత్వం కోసం ఉపయోగించవచ్చు.

std::endl: ఇది ప్రింటింగ్ తర్వాత కొత్త లైన్ అక్షరాన్ని చొప్పిస్తుంది.

కన్సోల్‌లో ముద్రించబడిన ఈ ప్రోగ్రామ్ యొక్క అవుట్‌పుట్ క్రింది స్నిప్పెట్‌లో చూపబడింది:

ముగింపు

C++లో హెక్సాడెసిమల్ విలువలను ముద్రించడం అనేది అందుబాటులో ఉన్న సాధనాలను అర్థం చేసుకోవడం మరియు నిర్దిష్ట అవసరాల ఆధారంగా తగిన పద్ధతిని ఎంచుకోవడం. మీరు 'std::hex' మానిప్యులేటర్, 'printf' ఫంక్షన్ లేదా పాడింగ్ మరియు లీడింగ్ జీరోల కోసం ఫార్మాటింగ్ సాధనాల కలయికను ఎంచుకున్నా, ఈ సాంకేతికతలపై దృఢమైన అవగాహన కలిగి ఉండటం ఏ C++ ప్రోగ్రామర్‌కైనా అవసరం. ఈ పద్ధతులను ఆలోచనాత్మకంగా వర్తింపజేయడం ద్వారా, మీ హెక్సాడెసిమల్ విలువలు ఖచ్చితంగా ప్రదర్శించబడతాయని మరియు మీ C++ కోడ్ యొక్క మొత్తం రీడబిలిటీ మరియు స్పష్టతకు దోహదపడే దృశ్యమానంగా ఆకట్టుకునే ఆకృతిలో ఉండేలా చూసుకోవచ్చు.