Pure Java – 42 Operators – 04

Merhaba Arkadaslar,
Bu yazim ile OCP notlarimin 4.bolumunu bitirecegim. Bu yazida Java’da su operatorleri isleyecegiz;

  • Bitwise(bitsel) ve Bit Shift Operators
  • Logical(Mantiksal) Operators

Bitwise ve BitShifting Operators
Bitwise veya Bit Shift operatorleri ozel durumlarda, kriptolama gibi durumlarda kullanilmaktadir.

& (ve) | (veya) ^ (xor)
public class Bitwise {

	public static void main(String[] args) {

		byte b1=6&8; 

		//0110 --->6
		//1000 --->8
		//----- & ve islemi
		//0000		
		System.out.println(b1);

		byte b2=5|9;
		//0101 --->5
		//1001 --->9
		//----- | veya islemi
		//1101

		System.out.println(b2);

		byte b3=7^5;

		//0111 --->7
		//0101 --->5
		//----- ^ xor islemi
		//0010

		System.out.println(b3);

	}
}

 

public class BitShifting {
	public static void main(String[] args) {

		byte b = 8>>1; 
		//00001000 --->8
		// bir bit saga kaydirirsak;
		//00000100 --->4
		System.out.println(b);

		b=7>>2;
		//00000111 --->7
		// 2 bit saga kaydirirsak
		//00000001 --->1
		System.out.println(b);

		b=4<<3;
		//00000100 -->4
		// 3 bit sola kaydirirsak
		//00100000 -->32
		System.out.println(b);

	}
}


Logical(Mantiksal) Operators

Logical(Mantiksal) Operatorleri fazla miktarda kullaniriz. Java’da Logical(Mantiksal) operatorler bulunur;

&& shortcut logical and
|| shortcut logical or
&  boolean logical and
|  boolean logical or
^  boolean logical xor
!  logical not

Shortcut operatorlerinde sartin saglandigi veya saglanmadigi kesin oldugunda islem bitirilir sonraki operand(islemci/islenen) calistirilmaz.

public class ShortcutOR {
	public static void main(String[] args) {

		int i=5;
		if(i>4 || i/0>1){
			System.out.println(i);
		}

		if(i>4 | i/0>1){
			System.out.println(i);
		}		
	}
}

1. if kodunda i>4 sarti saglanir , veya mantiginda sadece bir operandin true olmasi yeterli olacaktir. Dolayisiyla i/0 calismayacak ve hata firlatmayacaktir.
2.if kodunda ise sart saglanmasina ragmen | operatoru kullanildigi icin , ikinci operand da calisacak ve i/0 islemi sonucu hata firlatilacaktir.

public class ShortcutAnd {
	public static void main(String[] args) {

		int i=5;
		if(i<4 && i/0>1){
			System.out.println(i);
		}
		System.out.println("Exception ikinci if te firlatilacaktir");

		if(i<4 & i/0>1){
			System.out.println(i);
		}	
	}
}

ShortcutAnd mantigi da shortcutOr mantigi seklinde calisacaktir.
1.if durumunda i<4 sarti saglanmaz shortcut && kullanildigi icin , ve mantiginda iki operandin da true oldugu durumda islem true olacagi icin, burada ikinci operand calistirilmaz.
2.if durumunda i<4 sarti saglanmaz shortcut && kullanilmadigi icin , sartin saglanmasi ihtimali olmamasina ragmen ikinci operand da calistirilir ve hata firlatilir.

&& ve || operatorleri sadece booelan operand’lar ile calisir. & ve | operatorlerinin aksine su sekilde boolean olmayan literaller icin kullanimi hatali olacaktir

10&&5
5||7

^ (XOR) operatoru de sadece boolean operand’lar ile calisir.

public class Logical {

	public static void main(String[] args) {

		boolean bool = false;
		System.out.println(!true);
		System.out.println(!bool);

		System.out.println(true ^ false);
		System.out.println(true ^ true);
		System.out.println(false ^ false);

	}
}

Yazimi burada sonlandiriyorum.

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *