பிட்வைஸ் ஆபரேட்டர்கள் (&, XOR, <<, ...) - 1

"வணக்கம், அமிகோ!"

"பிட்வைஸ் ஆபரேட்டர்கள் பற்றி இன்னும் ஒரு சிறிய பாடம்."

"லாஜிக்கல் ஆபரேட்டர்கள் AND (&&), OR (||) மற்றும் NOT (!) தவிர, பிட்வைஸ் ஆபரேட்டர்கள் AND (&), OR (|), NOT (~), மற்றும் 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());
  }
 }
}

"வலது பக்கத்தை விட இடது பக்கம் கச்சிதமாக இருக்கிறதா?"

"ஆமாம்."

"அதற்கும் அதே அர்த்தம் உள்ளதா?"

"ஆமாம்."

"மிகவும் சரி. ஆனால் இப்போது பிட்வைஸ் ஆபரேட்டர்களைப் பயன்படுத்தி அதே எக்ஸ்ப்ரெஷனைப் பாருங்கள் :"

குறியீடு சமமான குறியீடு
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 ஐக் கணக்கிடும்போது விதிவிலக்கு அளிக்கப்படும் என்பதை நினைவில் கொள்க!"

"ஆமா. நான் அதை இப்போது இன்னும் தெளிவாகப் பார்க்கிறேன்."