Bir bilgisayar programında, bitsel operatörler ifadelerdeki bit desenlerini işlemek için operatörlerdir. Bitsel ve VEYA VEYA, özel VEYA (XOR), DEĞİL, sağa kaydırma ve sola kaydırma ortak işlemlerdir. Çoğu bilgisayar programlama dili, bu operatörlerin altı tanesini de içerir. Bilgisayar donanımını kontrol eden programlardaki bireysel bitleri ayarlamak, temizlemek veya çevirmek için kullanılırlar. Bitsel operatörler de veri şifreleme ve sıkıştırma algoritmalarında sıklıkla kullanılır.
Ortak bitsel operatörleri genellikle sembolik olarak C, C ++ ve Java gibi programlama dillerinde gösterilir. İfadelerde, artı veya eksi işaretleri gibi aritmetik operatörler gibi kullanılırlar. Bitsel operatör AND, ve işaretiyle & , VEYA boruyla | ve şair ^ ile birlikte XOR. Kompleman operatörü olarak da bilinen NOT, bir tilde ~ ile gösterilir.
Sağ vites operatörü, sağa dönük bir çift-kareli kullanır >> . Buna karşılık, sola kaydırma bir sol işaretli çift-şapka << ile gösterilir . Java, sağa dönük üçlü bir şapka >>> ile gösterilen başka bir sağa kaydırma işlemi içerir.
Bitsel operatörler, işlenenlerindeki her bir bit çiftine mantıksal bir işlem uygular. NOT, sağa kaydırma ve sola kaydırma yalnızca bir gerçek işlenene sahiptir; vardiya işlemlerinde ikinci değer bit sayısıdır. Bitsel operatörlerin nasıl çalıştığını daha iyi anlamak için, bir kişi kendi operandlarını ikili sayılar olarak görselleştirebilir. Örneğin, tamamlayıcı işleci, tek işlenenin her bir ucunu ters durumuna çevirir. Bir sıfır olur ve sıfır bir olur. 00110101 8-bit ikili değerinin tamamlayıcısı 11001010'dur.
AND işleci iki işleve sahiptir. Bit bit, mantıksal bir AND işlemi her işlemden karşılık gelen bit kullanılarak gerçekleştirilir. Her bit işleminin sonucu, genel sonucun bu bit pozisyonuna yerleştirilir. Örneğin, AND işleci bir işlenenin bit 7'sini diğer işlenenin bit 7'si ile işleyecektir. Sonuç, genel sonucun 7. bitinde saklanacaktır.
Bir AND işleminde, her iki işlenen bit, sonucun bir olması için olanlar olmalıdır, aksi takdirde sonuç sıfırdır. Örneğin, işlenenlerin 8 bitlik ikili değerleri 00110101 ve 11110000 ise, sonuç 00110000 olur. VE işlecinin ortak kullanımı, sonuçtaki belirli bitleri sıfırlamaktır. Bu, işlenenlerden birindeki bu bit konumlarına sıfır koyarak yapılır.
Bir OR işleminde, sonucun sıfır olması için her iki işlem bitinin de sıfır olması gerekir; Aksi takdirde, sonuç bir olur. OR operatörünün yaygın olarak kullanılması, sonucun belirli bitlerini olanlara ayarlamaktır. Bu, işlenenlerden birine bu bit pozisyonlarında olanları yerleştirerek yapılır. XOR işlemi için, her iki işlemsel bit de sıfırsa veya her iki işlemsel bit bir ise sonuç sıfırdır, aksi takdirde sonuç bir olur.
Sola kaydırma ve sağa kaydırma, işlenen kısımdaki bitleri belirtilen bit konum sayısı kadar sola veya sağa hareket ettirir. Mantıksal bir sağa kaydırma, bir sıfırın, kaymanın bir parçası olarak en soldaki bit içine taşınmasını sağlar. Aritmetik sağa kaydırma, kaymadan önce en soldaki bit (işaret biti), vardiyadan sonra aynı konuma kopyalar. Orijinal bit aynı zamanda geri kalanıyla birlikte kaydırılır. Her iki tür sol kaydırma da sıfırı en sağdaki bitin içine taşır.
Bir işlenen sağa kaydırıldığında, vardiyadan önceki en sağdaki bit basitçe atılır. Benzer şekilde, sola kaymadan önceki en soldaki bit atılır. Operandın diğer ucuna dolanmaz.
Bitsel kaydırma işlemleri dile ve uygulamaya bağlıdır. Örneğin, C ve C ++ 'da, işlenen işaretsiz bir tamsayıysa, mantıksal kaymalar gerçekleştirir. İşlenen işaretli bir tamsayıysa, bunun yerine aritmetik bir değişim yapılması muhtemeldir. Java'da tüm işlenenler imzalı kabul edilir ve aritmetik kaymalar her zaman >> ve << ile yapılır. >>> operatörü, mantıksal bir sağa kaydırma için kullanılır, ancak dikkatli bir yazım hatası yapmadan, yanlışlıkla aritmetik bir sağa kaydırma yapmak mümkündür.
İşlenenler farklı bit uzunluklarına sahip olduğunda veya bazıları imzalandığında ve bazıları imzalanmadığında da komplikasyonlar ortaya çıkabilir. Bitsel operatörler ve karmaşık bir ifadenin ortasındaki sayısal sabitler beklendiği gibi değerlendirilmeyebilir. İfadedeki her miktarın boyutunu ve imzalı / imzasız niteliğini belirtmek için özen gösterilmelidir. Bu, program kodundaki belirli değişken türlerine dikkatlice yazma veya geçici atamalarla yapılabilir.


