0 + 0 = 0 0 + 1 = 1; 1 + 0 = 1; 1 + 1 = 0 va 1 qiymat keyingi razryadga o‘tadi.
Mantiqiy operatorlar, bit razryadlar ustida ham ishlatilishi mumkin(faqat butun sonlar), ular bir necha xil bo‘ladi. Quyida ular bilan birma-bir tanishib chiqamiz.
Dastlabki bitga oid mantiqiy operator bu — «not«. Bu kalit so‘z orqali ikkilik tizimdagi razryadlardagi 0 va 1 larni teskarisiga almashtirish mumkin(0 bo‘lsa 1 ga o‘zgaradi, 1 bo‘lsa 0 ga). Dasturda bu operator tilda(~) orqali ifodalanadi. Bu operator faqat bitta operand bilan ishlatiladi. Misol,
0 0 1 0 1 0 1 0
NOT
1 1 0 1 0 1 0 1
teskari ko‘rinishida bo‘lib qoladi.
Navbatdagi mantiqiy operator «AND«. Bu operator ikkita operand bilan ishlatiladi va dasturda ampersand(&) belgisi bilan ifodalanadi, ma’nosi «VA«. «AND» operatorini ishlatsak, ikki operandda ham 1 qiymat bo‘lsa, natija ham 1 bo‘ladi, qolgan barcha qiymatlar uchun 0 natija bo‘ladi. Misol,
0 0 1 0 1 0 1 0 (42)
0 0 0 0 1 1 1 1 (15)
AND
0 0 0 0 1 0 1 0 (10)
Mantiqiy operatorlarni ko‘ib chiqishni davom ettiramiz, «OR» mantiqiy operatori. Dasturda (|) simvoli ko‘rinishida beriladi va «YOKI» ma’nosini anglatadi. Bu ham ikki operand bilan ishlatiladi, agar ikki operandning mos ravishda razryadlarining bittasi 1 bo‘lsa, natija ham 1 bo‘ladi, agar ikkalasi ham 1 bo‘lsa, natija ham 1, agar ikkalasi 0 bo‘lsa, natija ham 0.
0 0 1 0 1 0 1 0 (42)
0 0 0 0 1 1 1 1 (15)
OR
0 0 1 0 1 1 1 1 (47)
Navbatdagi operator — «XOR«. Ma’nosi «YOKIni rad etish» degani va dasturda (^) simvoli ko‘rinishida bo‘ladi, ikki operand bilan ishlatiladi. Agar razryadlarning bittasi 1 bo‘lsa, natija 1 bo‘ladi, qolgan hamma hol uchun 0, ikkalasi 1 bo‘lsa ham natija 0.
0 0 1 0 1 0 1 0 (42)
0 0 0 0 1 1 1 1 (15)
XOR
0 0 1 0 0 1 0 1 (37)
YUqoridagi barcha bitga oid mantiqiy operatorlarni dasturda ko‘rib chiqamiz.
class test {
public static void main(String args[]) {
String binary[ ] = {
"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
};
int a=3;
int b=6;
int c=a | b;
int d=a & b;
int e=a ^ b;
int f=(~a & b) | (a & ~b);
System.out.println("a = " + binary[a]);
System.out.println("b = " + binary[b]);
System.out.println("a|b = " + binary[c]);
System.out.println("a&b = " + binary[d]);
System.out.println("a^b = " + binary[e]);
System.out.println("(~a & b) | (a & ~b) = " + binary[f]);
}
}
16 ta elementdan iborat massiv yaratildi(String tipida). Massivning har bir elementi, 0 dan 15 gacha sonni ikkilik qiymatini saqlamoqda. So‘ng «int» tipida o‘zgaruvchilar e’lon qilinib, massivdagi qiymatlar orqali, mantiqiy operatorlar ishlatildi va natijalar ekranga chiqarildi.