^
[Bitsel Operatörler]Açıklama
C++'da, bitsel XOR olarak da bilinen, bitsel EXCLUSIVE OR adlı biraz alışılmadık bir operatör vardır. (İngilizce'de bu genellikle "eks-veya" olarak telaffuz edilir.) Bitsel XOR operatörü, şapka sembolü ^ kullanılarak yazılır. Bit düzeyinde bir XOR işlemi, yalnızca giriş bitleri farklıysa 1 ile sonuçlanır, aksi takdirde 0 ile sonuçlanır.
Tamamiyle,
0 0 1 1 işlenen1
0 1 0 1 işlenen2
----------
0 1 1 0 (işlenen1 ^ işlenen2) - döndürülen sonuç
Örnek Kod
int x = 12; // binary: 1100
int y = 10; // binary: 1010
int z = x ^ y; // binary: 0110, veya ondalık 6
^ operatörü genellikle bir tamsayı ifadesindeki bazı bitleri değiştirmek (yani 0'dan 1'e veya 1'den 0'a değiştirmek) için kullanılır. Bitsel XOR işleminde mask bitinde 1 varsa, bu bit ters çevrilir; 0 varsa, bit ters çevrilmez ve aynı kalır.
// Not: Bu kod, AVR mikro denetleyicilerine özgü kayıtları kullanır. (Uno, Nano, Leonardo, Mega, etc.)
// diğer mimariler için derlenmeyecek
void setup() {
DDRB = DDRB | 0b00100000; //PB5'i (Uno/Nano'da pim 13, Leonardo/Micro'da pim 9, Mega'da pim 11) OUTPUT olarak ayarlayın
Serial.begin(9600);
}
void loop() {
PORTB = PORTB ^ 0b00100000; //PB5'i ters çevirin, diğerlerine dokunmadan bırakın
delay(100);
}