Karşılaştırma Tablosu
Karşılaştırma için temel | & | && |
---|---|---|
Şebeke | Bu bir "Bitsel Operatör". | Bu bir "Mantıksal Operatör". |
Değerlendirme | İfadenin hem sol hem de sağ tarafını değerlendirir. | Sadece ifadenin sol tarafını değerlendirir. |
Çalışır | "Boolean datatype" üzerinde ve "bit" üzerinde çalışır. | Sadece "Boolean datatype" ile çalışır. |
kullanım | Mantıksal durumu kontrol etmek için ve parite bitleri gibi belirli bitleri maskelemek için de kullanın. | Sadece mantıksal durumu kontrol etmek için kullanılır. |
& (Bitwise AND) tanımı
Bu '&' operatörü hem mantıksal (&) bir operatör hem de bitsel operatör olarak kullanılır. Boole ve ikili veri üzerinde çalışır. & Operatör mantıksal ve operatör olarak kullanıldığında, değerlendirme ifadesinin her iki tarafı da doğruysa "true" olur, aksi halde "false" döndürür. Derleyicinin ifadenin her iki tarafını da değerlendirmesini sağlar. Yani, ifadenin sol tarafı yanlış sonuçlansa bile, ifadenin sağ tarafını değerlendirir.
Bunu bir örnekle anlamamızı sağlar.
int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // çıkış yanlış b = 5
Burada, ifadenin sol tarafını değerlendirirken (a == 6), yanlış olur, & operatörü ifadenin sağ tarafını (b ++ == 6) sonuç olarak, b artışlarının değerini değerlendirir.
'&' “Bitsel işleç” olarak kullanıldığında, ilk önce her iki işleci ikili forma dönüştürür ve daha sonra & işleci, bit-bit kullanarak çalışır. Operasyondan sonra elde edilen sonuç ikili biçimdedir ve daha sonra ondalık değere dönüştürülür. İşlenenlerin herhangi birinde 0 olan herhangi bir bit, 0 ile sonuçlanır. İşlenenlerin her iki bitinin de 1 olması durumunda, sonuçta elde edilen bit, 1 olur. Bitwise ve işleç, mantıksal ve işleci ile aynı doğruluk tablosuna tabidir.
Operatörün bitsel çalışmasını görelim.
int a; a = 3 & 4; // 011 & 100 = 000 system.out.println ("a =" + a); // çıktı a = 0
Burada, 3 ve 4 ondalık değerleri başlangıçta ikili biçimlerine dönüştürülür ve ardından & bitwise operatörü & bit işlemlerini biti bit gerçekleştirir. Elde edilen sonuç, ikili biçimdedir ve daha sonra tekrar ondalık forma dönüştürülür.
& & (Kısa devre VE) tanımı
Bu && operatörü tamamen mantıklı bir operatör olarak çalışır. Yalnızca boolean veri türünde çalışır. Aynı zamanda kısa devre operatörü denir. İfadenin sadece sol tarafını kontrol ettiği için. İfadenin sol tarafı yanlış ile sonuçlanıyorsa, ifadenin sağ tarafını değerlendirmekle ilgili bir sorun olmaz.
&& operatörünün çalışmasını bir örnekle anlamamızı sağlar.
int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // çıkış yanlış b = 4
Burada, koşul (a == 6) yanlış olduğu için, && operatörü ifadeyi (b ++ == 6) değerlendirmez, sonuç olarak b'nin değeri artmaz.
& Ve && Arasındaki Temel Farklılıklar
- & İşleci hem bilişsel hem de ikili veri üzerinde çalıştığı için hem bitsel hem de mantıksal bir işleci iken, & & işleci yalnızca yalnızca bir boolean veri türünde çalıştığı için mantıksal bir işlecidir.
- & Operatörü, son sonucu elde etmek için ifadenin her iki tarafını değerlendirirken, && operatörü ifadenin yalnızca sol tarafını değerlendirir ve yanlış çıkarsa ifadenin sağ tarafını bile değerlendirmez.
Not:
Boole veri türünü değerlendirirken, her iki operatör de yalnızca her iki işlenen de doğruysa "true" sonucunu verir, aksi halde "false" döndürür.
Sonuç:
Her ikisi de boolean durumunu değerlendirmek için & ve && operatörü kullanılırken, & operatörü bitli işlem için de kullanılır. İfadenin her iki tarafını da değerlendirmemiz gerektiğinde & operatörü kullanılır, yoksa & operatörü kullanabiliriz.