C++ ప్రోగ్రామింగ్లో, హెక్సాడెసిమల్ విలువలను ముద్రించడం ఒక సాధారణ అవసరం. మెమరీ అడ్రస్లతో పని చేసినా, బిట్వైస్ ఆపరేషన్లను నిర్వహిస్తున్నా లేదా డేటా యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యాలతో వ్యవహరించినా, హెక్స్ విలువలను సమర్థవంతంగా ప్రదర్శించడానికి వివిధ పద్ధతులను గ్రహించడం చాలా అవసరం. ఈ వ్యాసం C++లో హెక్సాడెసిమల్ విలువలను ముద్రించడానికి వివిధ పద్ధతులు మరియు సాంకేతికతలను అన్వేషిస్తుంది, వాటి అప్లికేషన్లు మరియు వినియోగ కేసులపై వెలుగునిస్తుంది.
Std::hex ఉపయోగించి హెక్స్ విలువలను ముద్రించడం
C++లో హెక్సాడెసిమల్ విలువలను ప్రింట్ చేయడానికి ఒక సరళమైన మార్గం
#
#
పూర్ణాంక ప్రధాన ( ) {
int decimalValue = 907 ;
std::cout << 'హెక్సాడెసిమల్ విలువ:' << std:: hex << దశాంశ విలువ << std::endl;
తిరిగి 0 ;
}
ఈ ఉదాహరణలో, “దశాంశ విలువ” పూర్ణాంకాన్ని ముద్రించే ముందు “std::hex” మానిప్యులేటర్ “std::cout” అవుట్పుట్ స్ట్రీమ్కు వర్తించబడుతుంది. హెక్స్ విలువను ముద్రించిన తర్వాత, స్ట్రీమ్ దాని సాధారణ ప్రవర్తనకు మార్చబడుతుంది. C++లో “std::hex” మానిప్యులేటర్ని ఉపయోగించి హెక్సాడెసిమల్ విలువను ఎలా ముద్రించాలో ఈ కోడ్ ఖచ్చితంగా చూపుతుంది. కోడ్ యొక్క విచ్ఛిన్నం ఇక్కడ ఉంది:
శీర్షికలు
ప్రధాన విధి
“పూర్ణాంక దశాంశ విలువ = 907;” 'పూర్ణాంక' రకానికి చెందిన 'దశాంశ విలువ' వేరియబుల్ని ప్రకటించింది మరియు దానిని 907 దశాంశ విలువతో కేటాయిస్తుంది.
“std::cout << “హెక్సాడెసిమల్ విలువ: ” << std::hex << decimalValue << std::endl;” 'హెక్సాడెసిమల్ విలువ:'ని ప్రింట్ చేస్తుంది, తర్వాత 'దశాంశ విలువ' యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యం ఉంటుంది.
కింది విలువను హెక్సాడెసిమల్గా అర్థం చేసుకోవడానికి “std::hex” అవుట్పుట్ స్ట్రీమ్ని నిర్దేశిస్తుంది. 'దశాంశ విలువ' వేరియబుల్ హెక్స్గా మార్చవలసిన దశాంశ విలువను కలిగి ఉంటుంది. 'std::endl' ముద్రించిన తర్వాత కొత్త లైన్ అక్షరాన్ని చొప్పిస్తుంది. చివరగా, ఈ కోడ్ ఇప్పుడు మీరు క్రింది అవుట్పుట్ స్నిప్పెట్లో చూడగలిగే విధంగా “హెక్సాడెసిమల్ విలువ: 38B”ని ప్రింట్ చేస్తుంది:
'%x' ఫార్మాట్ స్పెసిఫైయర్ ఉపయోగించి హెక్స్ విలువలను ముద్రించడం
C ప్రోగ్రామింగ్ లాంగ్వేజ్ తెలిసిన వారికి, “printf” ఫంక్షన్ C++లో హెక్సాడెసిమల్ విలువలను సంక్షిప్తంగా ముద్రిస్తుంది. C++
పూర్ణాంక ప్రధాన ( ) {
int decimalValue = 1256 ;
printf ( 'printfతో హెక్సాడెసిమల్ విలువ: %x \n ' , దశాంశ విలువ ) ;
తిరిగి 0 ;
}
ఈ ఉదాహరణలో, “printf” ఫంక్షన్లోని “%x” ఫార్మాట్ స్పెసిఫైయర్ సంబంధిత ఆర్గ్యుమెంట్ హెక్సాడెసిమల్లో ముద్రించబడాలని సూచిస్తుంది. C++లో “printf”ని ఉపయోగించి హెక్సాడెసిమల్ విలువను ముద్రించడానికి ఇచ్చిన కోడ్ సరైన ఉదాహరణ. దానిని విచ్ఛిన్నం చేద్దాం:
శీర్షికలు
ప్రధాన విధి
“పూర్ణాంక దశాంశ విలువ = 1256;” 'దశాంశ విలువ' అనే పూర్ణాంక వేరియబుల్కు 1256 దశాంశ విలువను ప్రకటిస్తుంది మరియు కేటాయిస్తుంది. “printf”లోని “printf” (“printfతో హెక్సాడెసిమల్ విలువ: %x\n”, decimalValue);” స్టేట్మెంట్ ఫార్మాట్ చేసిన అవుట్పుట్ను ప్రింట్ చేయడానికి “printf” ఫంక్షన్ని పిలుస్తుంది. “%x” అనేది “ఫార్మాట్ స్పెసిఫైయర్”, ఇది క్రింది ఆర్గ్యుమెంట్ను చిన్న హెక్సాడెసిమల్ సంఖ్యగా ముద్రించాలని సూచిస్తుంది. చివరగా, “\n” ప్రింటింగ్ తర్వాత కొత్త లైన్ అక్షరాన్ని చొప్పిస్తుంది. ఈ కోడ్ క్రింది అవుట్పుట్ స్నిప్పెట్లో కనిపించే విధంగా కన్సోల్కు “printfతో హెక్సాడెసిమల్ విలువ 4e8”ని అందిస్తుంది:
పాడింగ్తో హెక్స్ విలువలను ముద్రించడం
హెక్సాడెసిమల్ విలువలతో వ్యవహరించేటప్పుడు, ముఖ్యంగా మెమరీ చిరునామాలు, స్థిరమైన వెడల్పు లేదా పాడింగ్ తరచుగా కోరబడుతుంది.
#
పూర్ణాంక ప్రధాన ( ) {
int decimalValue = 47 ;
std::cout << 'పాడింగ్తో హెక్సాడెసిమల్ విలువ:' << std::setw ( 8 ) << std:: hex << దశాంశ విలువ << std::endl;
తిరిగి 0 ;
}
ఈ ఉదాహరణలో, std::setw(8) హెక్సాడెసిమల్ విలువ కనీసం 8 అక్షరాల వెడల్పుతో ముద్రించబడిందని నిర్ధారిస్తుంది. నిలువు వరుసలలో లేదా మెమరీ చిరునామాలతో విలువలను సమలేఖనం చేయడానికి ఇది ప్రత్యేకంగా ఉపయోగపడుతుంది.
మనం కోడ్ను విచ్ఛిన్నం చేసి, ప్రతి పంక్తిని ఒక్కొక్కటిగా అర్థం చేసుకుందాం:
శీర్షికలు
ప్రధాన విధి
“పూర్ణాంక దశాంశ విలువ = 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++లో హెక్సాడెసిమల్ విలువను ముద్రించడానికి మరింత అధునాతన విధానాన్ని ప్రదర్శిస్తుంది. ఒక మంచి అవగాహన కోసం దానిని విచ్ఛిన్నం చేద్దాం:
శీర్షికలు
ప్రధాన విధి
ప్రధాన ఫంక్షన్లో, సంతకం చేయని “byteData = 0xAB;” char నిర్వచించబడింది, ఇది సంతకం చేయని char వేరియబుల్ని “byteData” పేరుతో ప్రకటిస్తుంది మరియు దానికి “0xAB” హెక్సాడెసిమల్ విలువను కేటాయిస్తుంది. “std::cout << “బైట్ డేటా యొక్క హెక్సాడెసిమల్ ప్రాతినిధ్యం: “:” స్టేట్మెంట్ అవుట్పుట్ స్ట్రీమ్ని ఉపయోగించి కన్సోల్కు సందేశాన్ని అవుట్పుట్ చేస్తుంది.
“<< std::setw(2) << std::setfill(‘0’) << std::hex << static_cast
std::setw(2): ఇది కనిష్ట అవుట్పుట్ వెడల్పును 2 అక్షరాలకు సెట్ చేస్తుంది.
std::setfill(‘0’): కనిష్ట వెడల్పును చేరుకోవడానికి అవసరమైన ఏదైనా ప్యాడింగ్ను “0” అక్షరంతో నింపాలని ఇది నిర్దేశిస్తుంది.
std::hex: ఇది తదుపరి విలువను హెక్సాడెసిమల్గా అర్థం చేసుకోమని స్ట్రీమ్కి చెబుతుంది.
static_cast
std::endl: ఇది ప్రింటింగ్ తర్వాత కొత్త లైన్ అక్షరాన్ని చొప్పిస్తుంది.
కన్సోల్లో ముద్రించబడిన ఈ ప్రోగ్రామ్ యొక్క అవుట్పుట్ క్రింది స్నిప్పెట్లో చూపబడింది:
ముగింపు
C++లో హెక్సాడెసిమల్ విలువలను ముద్రించడం అనేది అందుబాటులో ఉన్న సాధనాలను అర్థం చేసుకోవడం మరియు నిర్దిష్ట అవసరాల ఆధారంగా తగిన పద్ధతిని ఎంచుకోవడం. మీరు 'std::hex' మానిప్యులేటర్, 'printf' ఫంక్షన్ లేదా పాడింగ్ మరియు లీడింగ్ జీరోల కోసం ఫార్మాటింగ్ సాధనాల కలయికను ఎంచుకున్నా, ఈ సాంకేతికతలపై దృఢమైన అవగాహన కలిగి ఉండటం ఏ C++ ప్రోగ్రామర్కైనా అవసరం. ఈ పద్ధతులను ఆలోచనాత్మకంగా వర్తింపజేయడం ద్వారా, మీ హెక్సాడెసిమల్ విలువలు ఖచ్చితంగా ప్రదర్శించబడతాయని మరియు మీ C++ కోడ్ యొక్క మొత్తం రీడబిలిటీ మరియు స్పష్టతకు దోహదపడే దృశ్యమానంగా ఆకట్టుకునే ఆకృతిలో ఉండేలా చూసుకోవచ్చు.