C dilinde bitsel operatörler

Bitwise Operators C Language



Genellikle bit düzeyinde kodlama olarak bilinen bit düzeyinde operatörler, verileri yalnızca bit düzeyinde yorumlamak için kullanılmıştır. Bitwise, bit düzeyinde bir veya hatta ek bit desenleri ve ikili sayılar üzerinde işlemler gerçekleştirir. Bunlar, sayısal hesaplamaların tahmin ilerlemesini hızlandırmak için kullanılmıştır. Biri 0 diğeri 1 olan iki sayıdan oluşur. İşte makalemizde tartışacağımız bazı bitsel operatörler.

Linux sisteminizden oturum açın ve konsol terminalini açmak için Ctrl+Alt+T kısayolunu deneyin. C dilindeki bitsel operatörlerin işlemlerini detaylandırmak için bazı örneklerimiz olacak. Her bir bitsel operatörü ayrı ayrı detaylandıralım.







Bit düzeyinde VE:

Bitsel operatör, her iki karşılıklı işlenende de varsa, sonuca bir biti çoğaltmak için kullanılmıştır. C veya C++, bu iki tamsayının her bir bitinde AND gerçekleştiren 2 işlenen gerektirir. Bitwise AND, her iki bitin de değeri 1 olduğunda 1 ile sonuçlanır. Bu nedenle, çalışmayı anlamak için Nano düzenleyiciyi kullanarak C tipi bir dosya oluşturun ve açın. Bunun için, Shell'de nano talimatını aşağıdaki gibi tüketmemiz gerekiyor:



$nanotest.c



Bitwise AND operatörünün kodu aşağıdaki resimde gösterilmiştir. Tek yapmanız gereken bu kodu GNU nano editör dosyanız test.c'ye olduğu gibi yazmak. Bu kod, stdio.h başlık kitaplığına sahiptir ve bunlar olmadan C programlamada kodlamayı yapamayız. Daha sonra dönüş tipi tamsayı olan bir main metodu oluşturduk. C dilinde, kodun yürütülmesi ana yöntem aracılığıyla yapılır. Bu nedenle, buna uygun olarak 35 ve 13 değerleriyle x ve y olmak üzere iki tamsayı tipi değişken bildirdik. Bundan sonra, değeri olarak sıfır olan başka bir tamsayı değişkeni belirtilmiştir. İlk iki tamsayı değişkenini kullanacağız ve aralarına bitsel AND operatörünü uygulayacağız. Bu çalışma, AND operatörünün & olarak kullanıldığı bir sonraki satırda yapılmıştır ve elde edilen değer, boş değişken z'de saklanacaktır. Daha sonra çıktı değerini terminal ekranında göstermek için print deyimini kullandık ve ana yöntem kapanıyor. Dosyanızı GNU kısayolu Ctrl+S kullanarak kaydedin ve ardından klavye daktilodan Ctrl+X aracılığıyla nano düzenleyiciden çıkın.





Yani, dosyayı kaydettikten sonra yukarıdaki kodu derlemenin zamanı geldi. Bir dosyanın adını test.c olarak veya dosyaya ne ad verdiyseniz onu kullanırken konsol kabuğunuzdaki gcc komutunu kullanın ve Enter tuşuna basın. Hata göstermediğini görebilirsiniz; bu, kodun manuel olarak doğru olduğu anlamına gelir.



$gcctest.c

Kodu derledikten sonra, şimdi kodu çalıştırma zamanı. Bu amaçla, Shell'de aşağıda belirtilen sorguyu çalıştırın. Çıktı, sonuç olarak 1 gösteriyor. Bu, her iki tamsayı değişkenimizin bitlerinden birinde 1'e sahip olduğu anlamına gelir. Bu yüzden 1 döndürür.

$./a.out

Bit düzeyinde VEYA:

Şimdi bitsel OR operatörünün detaylandırılmasına geçildi. Bitsel operatör, bitlerinden biri 1 olduğunda sonuç olarak 1 döndürür. İki tamsayının her iki biti de 0 ise, o zaman 0 verir. Tüm bitleri aldıktan sonra, üretilen bir bit seti olacaktır. Bu bitlerin hangi sayıyı oluşturduğunu görmemiz gerekiyor. Bu nedenle, önce aynı test.c belgesini açın. Aşağıda gösterilen kodu yazın ve Ctrl+S tuşlarını kullanarak GNU dosyasına kaydedin. Kod, yukarıdaki bitsel AND operatör örneğindekiyle hemen hemen aynıdır. Bu sefer x tamsayısının değerini 47 olarak değiştirdik ve OR operatörünü kullandık, ör. | her iki değişken arasında Kodu derlemek için dosyadan çıkın.

Test.c belgesini başarıyla yürüttükten sonra, 47 çıktı bitini gösterir.

$./a.out

Bitsel XOR:

Bitsel operatör, her iki sayı biti de farklı olduğunda 1 değerini döndürür. Yani bitler aynı olduğunda 0 verir. ^ operatörü işareti bitsel operatörü temsil eder. Yine, belgeyi açın ve aynı eski kodu GNU dosya düzenleyicisine yazın. Bu sefer ^ operatörlerini iki tamsayı değişkeni içinde kullanıyoruz ve sonuç terminalde yazdırırken z değişkeninde saklanacak.

Test.c dosyasını derleyin ve çalıştırın, sonuç olarak 34 döndürür. Bu, yeni tamsayı 34'ün, XOR operatörü iki tamsayı değişkenine uygulandıktan sonra üretildiği anlamına gelir.

$./a.out

Bitsel Tamamlayıcı:

Bu operatör yalnızca tek bir değişkene uygulanacaktır ve bit numarasının değerini geri alacaktır. Örneğin, 0 bit'i 1'e ve 1'i 0 bit'e değiştirecektir. Aynı kodu aynı dosyaya yazın ama 6. satırda küçük bir değişiklikle x'in tersini z'ye atadık.

Dosyayı derleyin ve çalıştırın. C'de, Bitsel tamamlayıcının sonucu, negatif bir işaretle 1 ile artırıldı.

Sol Vites Operatörü:

Bitlerin yerini bir dereceye kadar değiştirecektir. Aynı kod aşağıdaki ekteki resimde de görüntülenebilir. Bu örnekte, 2 bit sola kaydıracağız.

Çıktı, 188'i yeni oluşturulan bir değer olarak gösterir.

$./a.out

Sağ Vites Operatörü:

Aşağıdaki kodda gösterildiği gibi, sola kaydırma ile aynı şekilde ancak ters yönde çalışır.

Bu sefer 2 biti sağa kaydırdığımızda çıktı olarak 11 elde ettik.

$./a.out

Çözüm:

Bu makalede, C dili kodumuzdaki tüm temel 6 bitsel operatörleri ele aldık. Umarım rehberimizden istediğinizi alırsınız.