>> O'ng siljish (arifmetik siljish) >>> Nol bilan to'ldirish bilan o'ngga siljish (imzosiz siljish) << Chapga siljish Bit siljishlari qiymatning barcha ikkilik bitlarini belgilangan pozitsiyalar soniga o'zgartiradi. Umumiy shakl:
qiymati<< miqdor
Masalan:
34<<3, 56>>2, 78>>>1
Shift qanday sodir bo'lishini tushunish uchun uni ikkilik raqamlar misolida ko'rib chiqish yaxshiroqdir:
0001<<1 = 0010
0100>>1 = 0010
Salbiy sonlarni almashtirishda operatorlardan foydalanishda farq bor >> va >>> Amaliyot < < belgilangan (chap) bitni oxirigacha o'ngga yoyadi,>>> nol bilan to'ldiradi. Ijobiy sonlar uchun natija bir xil bo'ladi. Byte va short turlari ifodani hisoblashda int turiga o'tadi. Bit siljishlariga misol:
int i = 192;
i 00000000 00000000 00000000 11000000 (192)
i<<1 00000000 00000000 00000001 10000000 (384)
i>>1 00000000 00000000 00000000 01100000 (96)
i>>>1 00000000 00000000 00000000 01100000 (96)
int i = -192; (двоичная запись в доп. коде)
i 11111111 11111111 11111111 01000000 (-192)
i<<1 11111111 11111111 11111110 10000000 (-384)
i>>1 11111111 11111111 11111111 10100000 (-96)
i>>>1 01111111 11111111 11111111 10100000 (2147483552)
public class Bitwise2 {
public static void main(String[] args) {
byte a = 64; //0100 0000
byte b;
int i = a << 2; // 1 0000 0000
b = (byte) (a << 2); //0000 0000
System.out.println("a = " + a);
System.out.println("i = " + i);
System.out.println("b = " + b);
}
}
Bit tayinlash operatsiyalari ham mavjud:
&= Bitmapli mantiqiy operatsiya va tayinlash bilan
|= Bir nechta mantiqiy operatsiya yoki tayinlash bilan
^= Noyob mantiqiy operatsiya istisno yoki tayinlash bilan
>>= Tayinlash bilan o'ngga siljish
>>>= Nol bilan to'ldirish va tayinlash bilan o'ngga siljish
<<= Tayinlash bilan chapga siljish
1>1>1>
Do'stlaringiz bilan baham: |