Java dasturlash tilida bit bo‘yicha amalga oshiriladigan amallar, «long«, «int«, «short,», «char«, «byte» kabi butun tiplar uchun qo‘llanlishi mumkin. Bitga oid amallarni tushunish uchun, java dasturlash tilida, butun tiplar qay holda saqlanishini bilib olish lozim.

Java kompilyatorida, barcha butun tiplar ikkilik tizimda namoyon bo‘ladi(0 va 1 lardan iborat ketma-ketlik). Ikkilik qiymatlar uzunligi tanlangan tipga qarab har xil uzunlikda bo‘lishi mumkin. Misol uchun, «byte» tipi kompyuter xotirasidan 1 baytni oladi(tip va ular oladigan joy), ya’ni 8 bit(1 bayt 8 bit yoki 8 razryad). 1 bit, bitta 0 yoki 1 degani, demak «byte» tipi 8 razryadli hisoblanib, bu uchun 8 xonalik 0 va 1 lar ishlatilishi mumkin. Shu asosida, «short» tipi 2 bayt yoki 16 razryadli hisoblanadi, «int» — 32 razryad, «char» — 16 razryad.

Misol uchun, 42 sonini olamiz. Bu son «byte«tipi deb e’lon qilindi. Ikkilik sanoq tizimida bu son 00101010 ko‘rinishida bo‘ladi. Ko‘rib turganingizdek, bu son «byte» tipida 8 ta razryadga ega. Endi bu sonni «int» tipida e’lon qilindi deylik, bu holda 42 soni 0000000000101010 ko‘rinishda bo‘ladi. Raqam 16 razryadga ega bo‘ldi(int tipi 16 razryad 2 baytga  teng). Xulosa qiladigan bo‘lsak, tanlangan tipga qarab, qiymat kompyuter xotirasidan turlicha joy olar ekan.

Ikkilik tizimda, 0 va 1 lar ikki soni darajasi shaklida namoyon qilib(chunki 2 lik tizim), ularni o‘zimizning 10 lik tizimiga o‘girishimiz mumkin. YUqoridagi 42 sonini olaylik, u quyidagicha ikki soni darajasida yoziladi(byte tipida, 8 razryad).

BIT_1

O‘ng tomondan boshlab, ikki darajalari qo‘yib chiqiladi(0 dan boshlab). Dastlab, o‘ng tomonda «2″ning «0″chi darajasi, «2» ning «1«chi darajasi,… Shundan so‘ng, qaysi razryadda bo‘lsa, o‘sha razryad natijalari qo‘shib chiqiladi. Bizning holda «2» chi, «4» chi va «6» chi razryadlarda 1 soni mavjud, demak 2+8+32=42. Bizning 42 sonimiz shu orqali chiqdi.

Butun sonlar musbat va manfiy bo‘lishi mumkin. Chap tomondagi birinchi razryad shuni bildiradi(shuning uchun bu razryadga qaramadik). Bu degani qolgan razryadlar o‘z holicha qoladi degani emas. 42 sonini manfiy songa o‘tkazamiz. Uning uchun musbat 42 soni razryadlarini teskarisiga almashtiramiz va ikkilik tizimdagi 1 sonini qo‘shamiz, shunda -42 soniga ega bo‘lamiz.

BIT_2

Ikkilik tizimida qo‘shish quyidagicha amalga oshiriladi.

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]);
}
}

BIT_4

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. Dastur biroz chigal bo‘lishi mumkin, agar misolga oid savollar bo‘lsa, kommentariyada yozib qoldiring.