%ul మరియు %lu ఫార్మాట్ స్పెసిఫైయర్లు అంటే ఏమిటి?
ప్రారంభించడానికి, రెండింటినీ గమనించడం ముఖ్యం %ul మరియు %lu ఫార్మాట్ నిర్దేశకాలు C లో ప్రోగ్రామింగ్ చేస్తున్నప్పుడు ఉపయోగించబడతాయి మరియు అవి రెండూ సంతకం చేయని పొడవైన డేటా రకాలను సూచిస్తాయి. అయితే, అక్షరాల స్థానం ' ఎల్ 'మరియు' లో ” భిన్నంగా ఉంటుంది. లేఖలు ' లో 'మరియు' ఎల్ 'నిలుపు' సంతకం చేయలేదు 'మరియు' పొడవు ,” వరుసగా. ఉద్దేశించిన వాదన రకం ఈ అక్షరాల క్రమం ద్వారా నిర్ణయించబడుతుంది. ది ' % లో ”అది వర్తింపజేయబడిన అక్షరం లేదా స్ట్రింగ్ సైన్ చేయని డేటా రకాన్ని కలిగి ఉందని నిర్దేశిస్తుంది int అయితే ' %l ” భాగం ఇది సంతకం చేయని పొడవైన డేటా రకం అని నిర్దేశిస్తుంది. వేరే పదాల్లో, %ul అయితే సంతకం చేయని దీర్ఘ డేటా రకాన్ని సూచిస్తుంది %lu అదే సూచిస్తుంది కానీ అదనంగా ' పొడవు ” సైజు మాడిఫైయర్.
ఫలితంగా, మీరు ఉపయోగిస్తే %ul సంతకం చేయని దీర్ఘ పూర్ణాంకం లేని వేరియబుల్పై, మీరు ప్రత్యయం పొందవచ్చు ఎల్ అవుట్పుట్ చివరిలో. నిర్దిష్ట డేటా రకంతో వేరియబుల్ని ప్రింట్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు, తగిన ఫార్మాట్ స్పెసిఫైయర్ని ఉపయోగించడం చాలా కీలకం.
ఎలాగో చూపించే కొన్ని నమూనా కోడ్ ఇక్కడ ఉంది %ul మరియు %lu ఫార్మాట్ స్పెసిఫైయర్లు విభిన్నంగా ఉంటాయి:
Cలో %ul ఫార్మాట్ స్పెసిఫైయర్
#పూర్ణాంక ప్రధాన ( ) {
సంతకం చేయని లాంగ్ int i = 1234567890 ;
printf ( '%%ul ఫార్మాట్ స్పెసిఫైయర్ని ఉపయోగించడం: %ul \n ' , i ) ;
తిరిగి 0 ;
}
పై కోడ్లో, మేము వేరియబుల్ను నిర్వచించాము i సంతకం చేయని దీర్ఘ పూర్ణాంకం వలె మరియు దానిని ప్రారంభించండి 1234567890 . ది printf కమాండ్ అప్పుడు ఉపయోగిస్తుంది %ul విలువను ప్రింట్ చేయడానికి ఫార్మాట్ స్పెసిఫైయర్ i . ఎందుకంటే కేవలం % లో స్పెసిఫైయర్ యొక్క ప్రధాన భాగం మరియు ఎల్ ఫార్మాట్ వెలుపల ఉంది, ఇది ప్రత్యయంతో సంఖ్యను ముద్రిస్తుంది ఎల్ చివరలో.
అవుట్పుట్
Cలో %lu ఫార్మాట్ స్పెసిఫైయర్
#పూర్ణాంక ప్రధాన ( ) {
సంతకం చేయని లాంగ్ int i = 1234567890 ;
printf ( '%%lu ఫార్మాట్ స్పెసిఫైయర్ని ఉపయోగించడం: %lu \n ' , i ) ;
తిరిగి 0 ;
}
పై కోడ్లో, సంతకం చేయని దీర్ఘ పూర్ణాంకం వేరియబుల్ i డిక్లేర్ చేయబడింది మరియు 1234567890కి ప్రారంభించబడింది మరియు తర్వాత దాన్ని ఉపయోగించి ముద్రించబడుతుంది %lu ఫార్మాట్ స్పెసిఫైయర్.
అవుట్పుట్
Cలో %ul మరియు %lu ఫార్మాట్ స్పెసిఫైయర్ మధ్య తేడాలు
1: విలువల పరిధి
మధ్య ప్రధాన వ్యత్యాసం %ul మరియు %lu వారు సూచించే విలువల పరిధికి సంబంధించినది. Cలో ప్రోగ్రామింగ్ చేస్తున్నప్పుడు, సంతకం చేయని లాంగ్ డేటా రకం ఇతర డేటా రకాల నుండి భిన్నమైన ఆకృతిని ఉపయోగిస్తుంది, సంతకం చేయని Int డేటా రకంతో సహా. 32-బిట్ పూర్ణాంకానికి దాని విలువను నిల్వ చేయడానికి 32 బిట్ల మెమరీ అవసరం, అయితే సంతకం చేయని లాంగ్కు ఒకే రకమైన డేటా కోసం 64 బిట్లు అవసరం, తద్వారా పూర్ణాంకానికి కంటే ఎక్కువ ముఖ్యమైన పరిధిని కలిగి ఉంటుంది. అని దీని అర్థం %ul 0 నుండి +2^32-1 వరకు విలువలను అంగీకరిస్తుంది, అయితే %lu స్పెసిఫైయర్ 0 నుండి +2^64-1 వరకు విలువలను అంగీకరిస్తుంది.
2: ఖచ్చితత్వం
వారు సూచించే విలువల ఖచ్చితత్వంలో కూడా తేడా ఉంది. తో %ul స్పెసిఫైయర్, ప్రోగ్రామర్ 2^32-1 వరకు మాత్రమే విలువలను సూచించగలడు, అయితే %lu స్పెసిఫైయర్ 2^64-1 వరకు విలువలను సూచిస్తుంది. ఇది మొదటి చూపులో పెద్ద తేడాగా అనిపించకపోయినా, ఫలితాల ఖచ్చితత్వాన్ని పరోక్షంగా ప్రభావితం చేయవచ్చు. ఉదాహరణకు, +2^64 పరిధిని కలిగి ఉన్న విలువను నిల్వ చేయడానికి రూపొందించబడిన ప్రోగ్రామ్ ఉపయోగిస్తున్నప్పుడు లోపాలు ఏర్పడతాయి. %ul స్పెసిఫైయర్లు ఎందుకంటే వారు కోరుకున్న ఫార్మాట్లో డేటాను నిల్వ చేయలేరు, తద్వారా ఖచ్చితత్వం కోల్పోతారు.
3: జ్ఞాపకశక్తి
చివరగా, %ul మరియు %lu జ్ఞాపకశక్తిని ఉపయోగించడంలో కూడా తేడా ఉంటుంది. ది %ul డేటా కోసం స్పెసిఫైయర్కు 32 బిట్ల మెమరీ అవసరం, అయితే %lu ఒకే రకమైన డేటా కోసం 64 బిట్లు అవసరం, అంటే %lu దాని కంటే రెండు రెట్లు ఎక్కువ మెమరీని తీసుకుంటుంది %ul . ఇది చిన్న, తక్కువ-స్థాయి ప్రోగ్రామ్లలో భారీ వ్యత్యాసంలా కనిపించకపోవచ్చు, కానీ ప్రోగ్రామ్ యొక్క మెమరీ వినియోగం తరచుగా సంక్లిష్టతతో పెరుగుతుంది కాబట్టి ఇది త్వరగా నిర్వహించలేనిదిగా మారుతుంది, అంటే %lu పెద్ద-స్థాయి అనువర్తనాలతో వ్యవహరించేటప్పుడు అనువైనది కాదు.
4: ఫార్మాట్
ఉపయోగిస్తున్నప్పుడు అవుట్పుట్ యొక్క ఖచ్చితమైన ఆకృతిని అర్థం చేసుకోవడం చాలా ముఖ్యం %ul లేదా %lu . ప్రత్యేకంగా, ది %ul ఫార్మాట్ స్పెసిఫైయర్ ఎల్లప్పుడూ పూర్ణాంకాన్ని 8-అంకెల హెక్సాడెసిమల్ విలువగా అవుట్పుట్ చేస్తుంది %lu ఫార్మాట్ స్పెసిఫైయర్ పూర్ణాంకాన్ని 8-అంకెల దశాంశ విలువగా అవుట్పుట్ చేస్తుంది. అంటే పూర్ణాంకం హెక్సాడెసిమల్ విలువగా సూచించబడితే, అది a గా ముద్రించబడాలి %ul అయితే పూర్ణాంకం దశాంశ విలువగా సూచించబడితే, అది a గా ముద్రించబడాలి %lu .
తుది ఆలోచనలు
మధ్య ఖచ్చితమైన తేడాలను అర్థం చేసుకోవడం ముఖ్యం %ul మరియు %lu సి భాషతో పని చేస్తున్నప్పుడు ఫార్మాట్ స్పెసిఫైయర్లు. అవి ఒకేలా కనిపించినప్పటికీ, ప్రాథమిక వ్యత్యాసం ఏమిటంటే %ul ఆకృతికి సంతకం చేయని పొడవైన పూర్ణాంకం పరామితి అవసరం అయితే %lu ఫార్మాట్ దీర్ఘ సంతకం చేయని పూర్ణాంక ఇన్పుట్ను ఆశించింది. ది %ul ఫార్మాట్ స్పెసిఫైయర్ ఎల్లప్పుడూ పూర్ణాంకాన్ని 8-అంకెల హెక్సాడెసిమల్ విలువగా అవుట్పుట్ చేస్తుంది %lu ఫార్మాట్ స్పెసిఫైయర్ పూర్ణాంకాన్ని 8-అంకెల దశాంశ విలువగా అవుట్పుట్ చేస్తుంది. చివరగా, ఇది గమనించడం ముఖ్యం %ul మరియు %lu 'రకాన్ని కలిగి ఉన్న వేరియబుల్స్తో పని చేస్తున్నప్పుడు మాత్రమే ఫార్మాట్ స్పెసిఫైయర్లను ఉపయోగించవచ్చు పొడవు ’.