İçerikler :

^ Operatörü ~ Operatörü & Operatörü << Operatörü- Left Shift Operatörü >>> Operatörü- Unsigned Right Shift Operatörü.. >> ile >>> Operatör Farkı >> Operatörü- Right Shift Operatörü - Signed .. | Operatörü Bit Shift Operatörleri Bitwise Operatörleri Right Shift Örneği Unsigned >>> Right Shift Örneği

Bu Sayfayı Paylaş:

Kavram

Bitwise Operatörleri

Tanım: Bir değerin içindeki bit'ler ile çalışan operatörler. & (and) , | (or) , ^ (xor) , ~ (not) bitwise operatörleridir. >> (right shift) , << (left shift) gibi bit shift operator'leri de bitwise operatörü olarak kabul edilir

Kavram

Bit Shift Operatörleri

Tanım: Java'da bit üzerinde kaydırma işlemi yapan, >> (right shift) , << (left shift) , >>> (right shift) gibi operatörlere verilen genel isim.

Kavram

& Operatörü

Tanım: Verilen iki değerin, bitlerine karşılıklı olarak ve (and) mantıksal işlemini uygulayan operatör. Bitlerden ikisi 1 ise sonuç 1 , diğer durumlarda sonuç 0'dır. Örneğin 1110 ile 1001 değeri & ile 1000 sonucu üretir.

Kavram

| Operatörü

Tanım: Verilen iki değerin, bitlerine karşılıklı olarak veya (or) mantıksal işlemini uygulayan operatör. Bitlerden ikisi 0 ise sonuç 0 , diğer durumlarda sonuç 1'dir. Örneğin 1110 ile 1010 değeri & ile 1110 sonucu üretir.

Kavram

^ Operatörü

Tanım: Verilen iki değerin, bitlerine karşılıklı olarak dışlamalı yada (xor) mantıksal işlemini uygulayan operatör. Bitlerden ikisi aynı ise ise sonuç 1 , değil ise sonuç 0'dır. Örneğin 1110 ile 1010 değeri & ile 1011 sonucu üretir.

Kavram

~ Operatörü

Tanım: Verilen bit bit değerinin tersine çeviren (not) operatör. 1 ise 0 , 0 ise bir değerini verir. 1010 değerine uygulanırsa 0101 sonucu oluşur

Kavram

<< Operatörü- Left Shift Operatörü

Tanım: Verilen bir ifadenin bitlerinin istenilen değer kadar sola kaymasını sağlayan operatör. Kaydırmadan sonra boş kalan yerler 0 ile doldurulur. Örneğin 1101 bir sola kaydırılır ise 1010 şeklinde olur.

Kavram

>> Operatörü- Right Shift Operatörü - Signed Right Shift Operatörü - Aritmetik Shift Operatörü

Tanım: Verilen bir ifadenin bitlerinin istenilen değer kadar sağa kaymasını sağlayan operatör. Kaydırmadan sonra boş kalan yerler 0 ile doldurulur. Örneğin 1101 bir sağa kaydırılır ise 0110 şeklinde olur. Sign biti (sayılarda negitif-pozitifliği belirleyen ilk bit) korunur.

Kavram

>>> Operatörü- Unsigned Right Shift Operatörü - Logical Right Shift Operatörü

Tanım: Verilen bir ifadenin bitlerinin istenilen değer kadar sola kaymasını sağlayan operatör. Kaydırmadan sonra boş kalan yerler 0 ile doldurulur. Sign bitleri (sayılarda negitif-pozitifliği belirleyen bitler) korunmayacak ve her zaman 0 koyulacaktır.

Örnek

Right Shift Örneği

4 sayısına right shift operatörünü uygulayalım. 4 sayısının binary değeri 100'dür (integer olduğu için başında 0'ları yazmadık)
int a=4;		
System.out.println(Integer.toBinaryString(a));
System.out.println(a>>1);
System.out.println(Integer.toBinaryString(a>>1));

Bu kod çalıştığında ekranda aşağıdaki gibi gözükecektir:

100
2
10

100 değeri bir sağa kaydırıldığı için sondaki 0 kaybolur ve son iki rakam 10 haline gelir. Bu değer de 2 sayısıdır
Eğer sayı -4 olsaydı aşağıdaki gibi ekranda görülecektir:

11111111111111111111111111111100
-2
11111111111111111111111111111110

Dikkat edilirse negatif sayı olmasından dolayı 100 ifadesinin başında 1 olarak değerler gözükmektedir. 100 ifadesi sağa kaydırıldığı için sıfır kaybolmuş ve 10 değeri oluşmuştur.

Veri

>> ile >>> Operatör Farkı

>> operatörü negatifliğini belirleyen sign bitlerini korur. >>> operatörü ise sing bit'lerini korumaz ve sol tarafta kayan bit kadar 0 ekler.
Örneğin integer -4 değeri (11111111111111111111111111111100) >> yapıldığında sonuç 2 (10) çıkmaktadır (10 başında 30 adet sıfır var). Ancak eğer >>> uygulanır ise sonuç 2147483646 (01111111111111111111111111111110) çıkacaktır ve değer hem pozitif hem de çok büyük bir değer olacaktır. Bu nedenle >> operatörüne aritmetik right shift operatörü adı verilirken, >>> operatörü logical right shift operatörü adı verilmektedir.

Örnek

Unsigned >>> Right Shift Örneği

4 sayısına right shift operatörünü uygulayalım. 4 sayısının binary değeri 100'dür (integer olduğu için başında 0'ları yazmadık)
int a=4;
System.out.println(Integer.toBinaryString(a));
System.out.println(a>>>1);
System.out.println(Integer.toBinaryString(a>>>1));

Bu kod çalıştığında ekranda aşağıdaki gibi gözükecektir:

100
2
10

100 değeri bir sağa kaydırıldığı için sondaki 0 kaybolur ve son iki rakam 10 haline gelir. Bu değer de 2 sayısıdır
Eğer sayı -4 olsaydı aşağıdaki gibi ekranda görülecektir:

11111111111111111111111111111100
2147483646
1111111111111111111111111111110

Dikkat edilirse negatif sayı olmasından dolayı 100 ifadesinin başında 1 olarak değerler gözükmektedir. 100 ifadesi sağa kaydırıldığı için sıfır kaybolmuş ve 10 değeri oluşmuştur. Çıkan sonuç başındaki tek sıfırı düşünmek gerekiyor : 01111111111111111111111111111110. Bu da değerin pozitif olmasını sağlıyor ve sayının değeri 2147483646 gibi çok büyük bir değer oluyor.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir