~, ^ , | , & , << , >> gibi operatorlerin matematiksel açıklamaları mevcut mudur ? Yani atıyorum x>>y , x çarpı y bölü bilmemne türü bir açıklamaları varsa yazarsanız sevinirim..
Adı üstünde bunların bitwise, bitsel operatörler, bilindiği gibi bilgisayarlar bizim konuşma dilimizden farklı bir dil kullanırlar ( bildiniz binary! ), bitwise operatörler bir değişkene, bir array e, bir tipe, bir methoda uygulanabilirler. Gelelim açıklamalarına:
~ ( Bitwise NOT ) yani Değil operatörü bitler üzerinde değil alır. Örneklemek gerekirse elimizde: 0xFA diye bir hex sayımız olsun bunun binary değeri 1111 1010 dir eğer biz 0xFA değerine Bitwise Not operatörü ile işlem uygularsak elde ediceğimiz sayı
0000 0101 olacaktır ki buda bize 0x05 hex i verir. Yani:
0xFA ( 1111 1010 ) = 250 ~0xFA ( 0000 0101 ) = 5
| ( Bitwise OR ) Bitsel toplama operatörüdür, tekrar 0xFA sayısını ele alalım:
sonucunu verir yani elde ettiğiniz sayı: 0xFF olur.
^ ( Bitwise XOR ) Genelde bizde "Özel Veya" diye öğretilir. Farklı bitlerin ortaya çıkmasını sağlar:
1111 1010 ^ 0000 0111 = 1111 1101
Şeklinde bir işlem çıktısı verir. Yani farklı olan bitlerin değeri 1 aynı olanlarınki 0 olarak çıkar.
& ( Bitwise AND ) Çarpım operatörüdür.
1111 1110 0000 0101 X___________ 0000 0100
Olarak çıktı verir.
<< ( Bitwise Shift Left) Bit kaydırma operatörüdür verilen sayının bitlerini sola doğru verilen değer kadar kaydırır.
1111 1110 << 1 = 1111 1100
>> ( Bitwise Shift Right ) Bit kaydırma operatörüdür verilen sayının bitlerini sağa doğru verilen değer kadar kaydırır.
1111 1110 >> 1 = 0111 1111
Önemli Not: Carry Flag, Zero Flag v.b Terimsel Açıklamalara Değinmedin, çok bilmiş arkadaşlar çıkıpda shift de şöyle olursa böyle olur böyle olmazsa böyle olur yanlış biliyosun haha diye bir tavır takınmak yerine, onlarda onu yazarsa daha iyi olur.