సి లాంగ్వేజ్‌లో బిట్‌వైస్ ఆపరేటర్లు

Bitwise Operators C Language



Bitwise ఆపరేటర్లు, తరచుగా బిట్-లెవల్ కోడింగ్ అని పిలుస్తారు, బిట్ స్థాయిలో మాత్రమే డేటాను వివరించడానికి కాస్ట్-ఆఫ్ చేయబడ్డారు. Bitwise బిట్ స్థాయిలో ఒకటి లేదా అదనపు బిట్ నమూనాలు మరియు బైనరీ సంఖ్యలపై కార్యకలాపాలను నిర్వహిస్తుంది. సంఖ్యా గణనల అంచనా పురోగతిని వేగవంతం చేయడానికి ఇవి ఉపయోగించబడ్డాయి. ఇది రెండు సంఖ్యలను కలిగి ఉంటుంది, వాటిలో ఒకటి 0 మరియు మరొకటి 1. ఇక్కడ కొన్ని బిట్‌వైస్ ఆపరేటర్లు ఉన్నాయి, వీటిని మేము మా వ్యాసంలో చర్చిస్తాము.

మీ లైనక్స్ సిస్టమ్ నుండి లాగిన్ అవ్వండి మరియు కన్సోల్ టెర్మినల్ తెరవడానికి Ctrl+Alt+T సత్వరమార్గాన్ని ప్రయత్నించండి. సి భాషలో బిట్‌వైస్ ఆపరేటర్ల కార్యకలాపాల గురించి వివరించడానికి మాకు కొన్ని ఉదాహరణలు ఉంటాయి. ప్రతి బిట్‌వైస్ ఆపరేటర్‌ని విడిగా వివరిద్దాం.







బిట్‌వైస్ మరియు:

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



$నానోపరీక్ష. సి



Bitwise AND ఆపరేటర్ కోసం కోడ్ దిగువ చిత్రంలో ప్రదర్శించబడుతుంది. మీరు చేయాల్సిందల్లా ఈ కోడ్‌ను మీ GNU నానో ఎడిటర్ ఫైల్ test.c లో ఉన్నట్లుగా వ్రాయండి. ఈ కోడ్‌లో stdio.h హెడర్ లైబ్రరీ ఉంది, అది లేకుండా C ప్రోగ్రామింగ్‌లో కోడింగ్ చేయలేము. అప్పుడు మేము ఒక ప్రధాన పద్ధతిని దాని రిటర్న్ రకాన్ని పూర్ణాంకంగా సృష్టించాము. C భాషలో, కోడ్ అమలు ప్రధాన పద్ధతి ద్వారా జరుగుతుంది. కాబట్టి మేము x మరియు y అనే రెండు పూర్ణాంకాల రకం వేరియబుల్స్‌ను 35 మరియు 13 ప్రకారం ప్రకటించాము. ఆ తరువాత, మరొక పూర్ణాంక వేరియబుల్ సున్నాతో దాని విలువగా పేర్కొనబడింది. మేము మొదటి రెండు పూర్ణాంక చరరాశులను ఉపయోగిస్తాము మరియు వాటి మధ్య బిట్‌వైస్ మరియు ఆపరేటర్‌ను వర్తింపజేస్తాము. ఈ పని తదుపరి లైన్‌లో AND ఆపరేటర్ & గా ఉపయోగించబడింది మరియు ఫలిత విలువ శూన్య వేరియబుల్ z లో నిల్వ చేయబడుతుంది. టెర్మినల్ స్క్రీన్‌లో ఫలిత విలువను చూపించడానికి మేము ప్రింట్ స్టేట్‌మెంట్‌ను ఉపయోగించాము మరియు ప్రధాన పద్ధతి మూసివేయబడుతుంది. GNU సత్వరమార్గం Ctrl+S ని ఉపయోగించి మీ ఫైల్‌ని సేవ్ చేసి, ఆపై కీబోర్డ్ టైప్‌రైటర్ నుండి Ctrl+X ద్వారా నానో ఎడిటర్ నుండి నిష్క్రమించండి.





కాబట్టి, ఫైల్‌ను సేవ్ చేసిన తర్వాత పై కోడ్‌ని కంపైల్ చేయడానికి ఇది క్షణం. Test.c గా ఫైల్ యొక్క పేరును ఉపయోగిస్తున్నప్పుడు మీ కన్సోల్ షెల్‌లోని gcc సూచనలను ఉపయోగించండి లేదా మీరు ఫైల్‌కు పేరు పెట్టి ఎంటర్ కీని నొక్కండి. ఇది ఎటువంటి దోషం చూపలేదని మీరు చూడవచ్చు; దీని అర్థం కోడ్ మానవీయంగా సరైనది.



$gccపరీక్ష. సి

కోడ్‌ను కంపైల్ చేసిన తర్వాత, ఇప్పుడు కోడ్‌ను అమలు చేయడానికి సమయం ఆసన్నమైంది. ఈ ప్రయోజనం కోసం, షెల్‌లో పేర్కొన్న-దిగువ ప్రశ్నను అమలు చేయండి. అవుట్‌పుట్ 1 గా ఫలితాన్ని చూపుతోంది. దీని అర్థం మన పూర్ణాంక వేరియబుల్స్ రెండూ వాటి బిట్లలో 1 లో 1 కలిగి ఉంటాయి. అందుకే ఇది 1 ని అందిస్తుంది.

$./a. అవుట్

బిట్‌వైస్ లేదా:

ఇప్పుడు, బిట్‌వైస్ లేదా ఆపరేటర్‌ని వివరించడం కోసం ఇది మార్చబడింది. బిట్‌వైస్ ఆపరేటర్ 1 దాని బిట్‌లో ఒకటిగా 1 ని తిరిగి ఇస్తుంది. రెండు పూర్ణాంకాల రెండు బిట్‌లు 0 అయితే, అది 0. దిగుబడి వస్తుంది. అన్ని బిట్‌లను పొందిన తర్వాత, బిట్‌ల సమితి జనరేట్ అవుతుంది. ఆ బిట్‌లు ఏ సంఖ్యలో ఏర్పడ్డాయో మనం చూడాలి. కాబట్టి, ముందుగా అదే test.c పత్రాన్ని తెరవండి. Ctrl+S కీని ఉపయోగించి GNU ఫైల్‌లో చూపిన దిగువ కోడ్‌ను టైప్ చేసి, ఆపై సేవ్ చేయండి. కోడ్ దాదాపు బిట్‌వైస్ మరియు ఆపరేటర్ ఉదాహరణకి సమానంగా ఉంటుంది. ఈసారి మేము పూర్ణాంకం x విలువను 47 కి మార్చాము మరియు మేము OR ఆపరేటర్‌ను ఉపయోగించాము, ఉదా. | రెండు వేరియబుల్స్ మధ్య. కోడ్‌ను కంపైల్ చేయడానికి ఫైల్‌ని వదిలివేయండి.

Test.c డాక్యుమెంట్‌ను విజయవంతంగా అమలు చేసిన తర్వాత, ఇది 47 అవుట్‌పుట్ బిట్‌ని చూపుతుంది.

$./a. అవుట్

Bitwise XOR:

రెండు నంబర్ బిట్‌లు వేరుగా ఉన్నప్పుడు బిట్‌వైస్ ఆపరేటర్ 1 ని అందిస్తుంది. కాబట్టి బిట్‌లు ఒకే విధంగా ఉన్నప్పుడు, అది 0. దిగుబడిని ఇస్తుంది The ఆపరేటర్ గుర్తు బిట్‌వైస్ ఆపరేటర్‌ని సూచిస్తుంది. కాబట్టి మళ్లీ, డాక్యుమెంట్‌ని తెరిచి, అదే పాత కోడ్‌ని GNU ఫైల్ ఎడిటర్‌లో రాయండి. ఈసారి మేము రెండు పూర్ణాంక వేరియబుల్స్‌లోని ^ ఆపరేటర్‌లను ఉపయోగిస్తున్నాము మరియు టెర్మినల్‌లో ప్రింట్ అవుట్ చేస్తున్నప్పుడు ఫలితం z వేరియబుల్‌లో నిల్వ చేయబడుతుంది.

కంపైల్ చేయండి మరియు ఫైల్ రన్ చేయడం. Test.c రిటర్న్ 34 ఫలితంగా. దీని అర్థం XOR ఆపరేటర్ రెండు పూర్ణాంక వేరియబుల్స్‌కు వర్తింపజేసిన తర్వాత కొత్త పూర్ణాంకం 34 రూపొందించబడింది.

$./a. అవుట్

బిట్‌వైస్ కాంప్లిమెంట్:

ఈ ఆపరేటర్ ఒకే వేరియబుల్‌కు మాత్రమే వర్తింపజేయబడుతుంది మరియు ఇది బిట్ నంబర్ విలువను తిరిగి అందిస్తుంది. ఉదాహరణకు, ఇది 0 బిట్‌ను 1 మరియు 1 నుండి 0 బిట్‌గా మారుస్తుంది. అదే ఫైల్‌ని అదే ఫైల్‌లో వ్రాయండి కానీ లైన్ 6 వద్ద కొద్దిగా మార్పుతో మేము x కి రివర్స్‌ను z కి కేటాయించాము.

ఫైల్‌ను కంపైల్ చేసి దాన్ని అమలు చేయండి. C లో, బిట్‌వైస్ కాంప్లిమెంట్ ఫలితం 1 తో ప్రతికూల సంకేతంతో పెంచబడింది.

లెఫ్ట్ షిఫ్ట్ ఆపరేటర్:

ఇది కొంతవరకు బిట్స్ స్థలాన్ని మారుస్తుంది. దిగువ జోడించిన చిత్రంలో అదే కోడ్ ప్రదర్శించబడుతుంది. ఈ ఉదాహరణలో, మేము 2 బిట్‌లను ఎడమ వైపుకు మారుస్తాము.

అవుట్‌పుట్ 188 ను కొత్తగా ఉత్పత్తి చేసిన విలువగా చూపుతుంది.

$./a. అవుట్

కుడి షిఫ్ట్ ఆపరేటర్:

ఇది ఎడమ షిఫ్ట్ పనిచేసే విధంగానే పనిచేస్తుంది కాని దిగువ కోడ్‌లో చూపిన విధంగా వ్యతిరేక దిశలో పనిచేస్తుంది.

ఈసారి 2 బిట్‌లను కుడి వైపుకు మార్చిన తర్వాత 11 అవుట్‌పుట్‌గా పొందాము.

$./a. అవుట్

ముగింపు:

మేము ఈ వ్యాసంలో మా సి లాంగ్వేజ్ కోడ్‌లోని అన్ని ప్రాథమిక 6 బిట్‌వైస్ ఆపరేటర్‌లను కవర్ చేసాము. మా గైడ్ నుండి మీరు కోరుకున్నది మీకు లభిస్తుందని నేను ఆశిస్తున్నాను.