बिटवाइज ऑपरेटर (&, XOR, <<, ...) - १

"हाय, अमिगो!"

"बिटवाइज ऑपरेटर्सबद्दल आणखी एक छोटासा धडा."

"तुम्हाला माहित आहे की लॉजिकल ऑपरेटर AND (&&), OR (||) आणि NOT (!) व्यतिरिक्त, बिटवाइज ऑपरेटर AND (&), किंवा (|), नाही (~), आणि XOR(^) देखील आहेत ), बरोबर?"

"हो. बिलाबोने एकदा याविषयी खूप चांगला धडा दिला होता."

"ठीक आहे, या ऑपरेटर्सबद्दल. मला तुम्हाला दोन गोष्टी सांगायच्या आहेत:"

"प्रथम, NOT (~) व्यतिरिक्त, ते लॉजिकल ऑपरेटर्सप्रमाणे, बुलियन व्हेरिएबल्सवर लागू केले जाऊ शकतात."

"दुसरे, आळशी मूल्यमापन त्यांना लागू होत नाही."

"हे उदाहरण पहा:"

कोड समतुल्य कोड
if (a != null && a.getName() != null && c != null)
{
 c.setName(a.getName());
}
if (a != null)
{
 if (a.getName() != null)
 {
  if (c != null)
  {
   c.setName(a.getName());
  }
 }
}

"डावी बाजू उजवीपेक्षा अधिक संक्षिप्त आहे का?"

"हो."

"आणि त्याचा एकच अर्थ आहे का?"

"हो."

"अगदी बरोबर. पण आता bitwise ऑपरेटर वापरून समान अभिव्यक्ती पहा :"

कोड समतुल्य कोड
if (a != null & a.getName() != null & c != null)
{
 c.setName(a.getName());
}
boolean c1 = (a != null);
boolean c2 = (a.getName() != null);
boolean c3 = (c != null);
if (c1)
{
 if (c2)
 {
  if (c3)
  {
   c.setName(a.getName());
 }
 }
}

"दुसर्‍या शब्दात, कोड समान आहे, परंतु पूर्णपणे प्रत्येक ऑपरेशन केले जाईल."

"लक्षात ठेवा की a शून्य असल्यास, c2 ची गणना करताना अपवाद टाकला जाईल!"

"अहो. मी आता ते अधिक स्पष्टपणे पाहू शकतो."