~
[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.