~ (bitwise not)



Açıklama

C ++ 'da bitsel NOT operatörü tilde karakteri ~ . & Ve | 'dan farklı olarak, bitsel NOT işleci sağındaki tek bir işlenene uygulanır. Bitsel NOT her biti tersine çevirir: 0 1 olur ve 1 0 olur.

Diğer bir deyişle:

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

Örnek Kod

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

Örnek Kod

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

Notlar ve Uyarılar

Bu işlem sonucunda -104 gibi negatif bir sayı gördüğünüzde şaşırabilirsiniz. Bunun nedeni, 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 kodlanmasına ikinin tamamlayıcısı denir. Daha fazla bilgi için, ikisinin tamamlayıcısı hakkındaki Wikipedia makalesine bakın.

Bir kenara, herhangi bir x tamsayısı için, ~ x değerinin -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