~

[Bitsel Operatörler]

Açıklama

C++'daki bitsel NOT operatörü, ~ işaretidir. & ve |'den farklı olarak, bit düzeyinde NOT operatörü, sağındaki tek bir işlenene uygulanır. Bitsel DEĞİL, her bir biti tersine değiştirir: 0, 1 olur ve 1, 0 olur.
Diğer bir deyişle:

                    
0  1    işienen1
-----
1  0   ~işlenen1
                    


                    

Örnek Kod

                
int a = 103;  // binary:  0000000001100111
int b = ~a;   // binary:  1111111110011000 = -104
                

Notlar ve Uyarılar

Bu işlemin sonucu olarak -104 gibi negatif bir sayı görmek sizi şaşırtabilir. Bunun nedeni, bir int değişkenindeki en yüksek bitin işaret biti olmasıdır. En yüksek bit 1 ise, sayı negatif olarak yorumlanır. Pozitif ve negatif sayıların bu kodlamasına ikinin tümleyeni denir. Daha fazla bilgi için, ikinin tamamlayıcısı hakkındaki Wikipedia makalesine bakın.

Bir kenara, herhangi bir x tamsayısı için ~x'in -x - 1 ile aynı olduğunu belirtmek ilginçtir.

Bazen, işaretli bir tamsayı ifadesindeki işaret biti bazı istenmeyen sürprizlere neden olabilir.

Ayrıca Bakınız

MİSAL BitMath Eğitimi