C & C++ Programlamada Bitsel Operatör

Yayınlanan: 2022-12-09

RAM'de, veriler bir bayt dizisi olarak düzenlenir. Her bayt sekiz ardışık bit içerir. C & C++ bitsel işleçleri, veri bitleri üzerinde bazı aritmetik işlemler gerçekleştirmek istediğinizde yardımcı olur. Oldukça hızlıdırlar ve ara sıra bir programın verimliliğini artırmak için kullanılırlar. Bit düzeyinde işlemler gerçekleştiren veya bitleri çeşitli şekillerde işleyen Bitsel Algoritmalar üzerinde çalışırlar.

C & C++'daki Bitsel Operatör türleri:

  1. bit düzeyinde VE
  2. bitsel VEYA
  3. bit düzeyinde DEĞİL
  4. Bitsel Özel-Or (XOR)
  5. Sola Kaydırma Operatörü
  6. Sağa Kaydırma Operatörü

Her birinin ayrıntılarına girelim:

İçindekiler

1. Bit düzeyinde VE:

C veya C++'daki bit düzeyinde AND işleci, tek bir ve işareti (&) kullanır. İşlenen olarak iki sayı alır ve bunların tüm bitlerinde VE gerçekleştirir. Sonuç yalnızca her iki bit de 1 ise 1'dir. Bitlerden herhangi biri 0 ise sonuç 0'dır. Esasen, C & C++'daki bu ikili işleç , verilen iki sayının her konumundaki bitlerin mantıksal AND'sini alır. ikili biçim

Örnek:

İki a & b sayısının ikili gösteriminin şöyle olduğunu varsayalım:

bir = 01011000

b = 10111001

Yani, a & b = 00011000

Yukarıdaki örnekte görüldüğü gibi, sonuç yalnızca a ve b sayılarının her ikisinin de 1 olduğu yerlerde '1' gösterir. Diğer tüm yerler için sonuç '0' gösterir.

2. Bit düzeyinde VEYA:

C & C++'da Bitwise OR, bitwise AND'e oldukça benzer şekilde çalışır. Tek fark, bitsel OR operatöründe, sonuçtaki bitin konumunun '1' olması için, iki bitten yalnızca birinin '1' olması gerektiğidir. Bu operatör işlenen olarak iki sayı alır ve iki sayının her bitinde OR gerçekleştirir.

Aşağıdaki şekilde çalışır:

  • Her iki bit de '1' ise, sonuç '1' olur.
  • Her iki bit de '0' ise, sonuç '0' olur.
  • Bitlerden herhangi biri "1" ise, sonuç "1" olur.

En basit ve en sık kullanılan C++ bitsel operatörlerinden biridir . Sembolü boru |'dir. Ayrıca, Boole mantıksal işleci || ile aynıdır.

Örnek:

İki sayının ikili gösterimini varsayalım a| b:

bir = 01101001

b = 10111000

Yani, bir| b = 11111001

3. Bitsel DEĞİL:

Bitwise NOT operatörü olarak da bilinir, sonuçtaki her biti çevirir. Sembolü dalga işaretidir (~). Bu operatörün işleyişini hatırlamanın kolay bir yolu, yaklaşık işaretinin ara sıra bir twiddle olarak bilinmesi ve bitsel tümleyenin her bir biti twiddles yapmasıdır. Bu, 1'iniz varsa, sonucun 0 olduğu ve bunun tersi anlamına gelir. Başka bir deyişle, C & C++ 'daki bu bitsel operatör bir sayı alır ve tüm bitleri ters çevirir.

Herhangi bir işaretsiz sayı için mümkün olan en büyük değeri belirlerken, bu en kullanışlı C++ bitsel işleçlerinden biridir .

Örnek:

işaretsiz int sayı = ~0;

Burada 0, tüm 0'lar anlamına gelir: 00000000. Dolayısıyla, Bitwise NOT operatörünün uygulanması sonucu 1s olarak verir: 11111111. num işaretsiz bir int olduğundan, işaret bitleri veya ikinin tamamlayıcısı hakkında endişelenmenize gerek yoktur. 1s, sonuçtaki mümkün olan en büyük sayıdır.

Bitwise NOT operatörünün en önemli özelliklerinden biri 2'nin Tamamlayıcısıdır. Bir sayının 2'nin tümleyeni, o sayının tümleyeni artı 1'e eşittir.

Örnek:

bir = 00000000

Yani, 2'nin tümleyeni = -(11111111+1) = -00000000 = -0(ondalık)

Not: Herhangi bir N sayısının bit düzeyinde tümleyeni -(N+1)'e eşittir.

Dünyanın En İyi Üniversitelerinden Çevrimiçi Yazılım Geliştirme Kursları Öğrenin. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

4. Bitsel Özel-OR (XOR):

Exclusive-OR işlemi iki girişi kabul eder ve girişlerden biri veya diğer girişler 1 ise 1 verir. Ancak her ikisi de 1 ise sonuç 0'dır. Her iki giriş de 0 veya her ikisi de 1 ise sonuç 0'dır. Sonuç XOR yalnızca iki bit farklıysa 1'dir. Bu ikili operatörün C & C++'daki sembolü şapkadır (^). Ayrıca, C & C++' daki bu bitsel operatör XOR olarak kısaltılmıştır. Her bit çiftinde özel VEYA işlemini gerçekleştirir. Bu operatöre eşdeğer bir Boolean operatörü olmadığına dikkat edilmelidir.

Örnek:

Diyelim ki elimizde iki sayı var

bir = 10101010

b = 01110010

Şimdi a ^ b = 10101010 ^ 01110010 = 11011000

XOR'u aşağıdaki şekilde anlayabilirsiniz. Diyelim ki A dediğiniz 0 veya 1 bitiniz var. Şimdi A XOR 0 aldığınızda, A'yı geri alacaksınız. Yani, eğer A 1 ise, 1 elde edersiniz ve bunun tersi de geçerlidir. A XOR 1 aldığınızda, A'yı çevirdiğiniz anlamına gelir. Yani, eğer A 1 ise, 0 alırsınız ve bunun tersi de geçerlidir.

Bitsel XOR işlemini iki kez uygularsanız, yani A ve B olmak üzere iki bitiniz varsa ve C = A XOR B olarak ayarlarsanız, C XOR B yapın. Bu durumda, elde ettiğiniz sonuç A XOR B XOR C olur. Ya A'nın her bitini iki kez çevirir ya da hiç çevirmez. Bu nedenle, A'yı olduğu gibi geri alırsınız.

İkili XOR işlemini bir tür seçici kurcalama olarak düşünebilirsiniz. Biri tamamı 1 olan iki sayıya XOR uygularsanız, sonuç bir twiddle'a eşdeğerdir.

5. Operatörü Sola Kaydırma:

Bu bitsel operatör, tüm bitleri belirtilen bitlerin belirli bir sayısı kadar sola kaydırır. Sola kaydırma operatörünün boşalttığı bit konumları 0 ile dolar. Simgesi <<'dir.

C veya C++'da, önce iki sayı alacak, birinci işlenenin bitlerini sola kaydıracak ve ikinci işlenen sayının kaç basamak kaydırılacağını gösterecek şekilde çalışır.

Sözdizimi:

bir <<= 5

İşte sola kaydırma işlecini uygulamak için örnek C/C++ programı:

int ana()

{

int bir = 5;

bir <<= 2;

saymak << “x : ” << x << endl;

}

Çıktı: bir = 20

Yazılım Mühendisliği ile İlgili Popüler Kurslar ve Makaleler

Popüler Programlar
Yazılım Geliştirmede Yönetici PG Programı - IIIT B Blockchain Sertifika Programı - PURDUE Siber Güvenlik Sertifika Programı - PURDUE Bilgisayar Bilimlerinde Yüksek Lisans - IIIT B
Diğer Popüler Makaleler
ABD'de Bulut Mühendisi Maaşı 2021-22 ABD'de AWS Çözüm Mimarı Maaşı ABD'de Arka Uç Geliştirici Maaşı ABD'de Ön Uç Geliştirici Maaşı
ABD'de web geliştiricisi Maaşı 2022'de Scrum Master Mülakat Soruları 2022'de Siber Güvenlik Alanında Bir Kariyere Nasıl Başlanır? Mühendislik Öğrencileri için ABD'de Kariyer Seçenekleri

6. Sağa kaydırma Operatörü:

Bu bitsel operatör, tüm bitleri belirtilen bitlerin belirli bir sayısı kadar sağa kaydırır. Sembolü >>'dir. C veya C++'da, bu işleç önce iki sayı alır, birinci işlenenin bitlerini sağa kaydırır ve ikinci işlenen sayı üzerindeki kaydırma miktarını belirtir.

Sözdizimi:

bir >>= 5

Sağ kaydırma işlecini uygulamak için örnek bir C/C++ programı:

int ana() {

int bir = 5;

bir >> = 2;

saymak << “x : ” << x << endl;

}

Çıktı: bir = 1

Yazılım Mühendisliği ile İlgili Popüler Kurslar ve Makaleler

Popüler Programlar
Yazılım Geliştirmede Yönetici PG Programı - IIIT B Blockchain Sertifika Programı - PURDUE Siber Güvenlik Sertifika Programı - PURDUE Bilgisayar Bilimlerinde Yüksek Lisans - IIIT B
Diğer Popüler Makaleler
ABD'de Bulut Mühendisi Maaşı 2021-22 ABD'de AWS Çözüm Mimarı Maaşı ABD'de Arka Uç Geliştirici Maaşı ABD'de Ön Uç Geliştirici Maaşı
ABD'de web geliştiricisi Maaşı 2022'de Scrum Master Mülakat Soruları 2022'de Siber Güvenlik Alanında Bir Kariyere Nasıl Başlanır? Mühendislik Öğrencileri için ABD'de Kariyer Seçenekleri

C & C++'da bitsel işleçleri ne zaman kullanmalısınız?

  • Yer tasarrufu sağlar:

Bitsel operatörler yerden tasarruf etmeye yardımcı olur. Ayrı bit düzeyinde çalışırken karşılaşılan yaygın sorunlardan biri, daha fazla alan istiyorsanız veya zamandan tasarruf etmek istiyorsanız, programınızın büyük bölümlerini yeniden tasarlamanız gerekebileceğidir. Ancak C & C++'da bitsel işleçler kullanmak bağımlılıkları ortadan kaldırabilir; örneğin, mümkün olan en büyük tamsayıyı elde etmek için ~0'ı kullanabilirsiniz. İki ile çarpmak için bit kaydırma tipik bir işlemdir. Bu nedenle, bit manipülasyonunun gelişmiş kullanımının bazı durumlarda etkileyebileceğinden farklı olarak, okunabilirliği etkilemez.

  • şifreleme:

Bir tür şifreleme üzerinde veya Boole özniteliklerini depolamak için bit alanlarının kullanılmasına ihtiyaç duyan bir sistem üzerinde çalışıyorsanız.

Bitsel operatörler hakkında benzersiz gerçekler

  • İki sayının bit düzeyinde OR'si, elde etme söz konusu değilse, basitçe bu sayıların toplamıdır. Aksi takdirde, bitsel AND'lerini eklemeniz yeterlidir. Örneğin, x = 5(101) ve y = 2(010) olduğunu varsayalım. Taşıma söz konusu olmadığından, toplam basitçe x|y'dir. Ancak, şimdi 'x'i 6 (110) olarak değiştirirsek, toplam x|y + x&y olarak değişecektir çünkü artık taşıma söz konusudur.
  • Bitsel XOR operatörü, teknik görüşme açısından en değerli olanıdır. Bununla ilgili görüşme problemlerinden birine bir örnek burada tartışılmaktadır. “Bir sayı dışında çift sayıda tekrar eden tüm öğelerden oluşan verilen sayı kümesi için, oluşan tek sayıyı bulun.” Bu sorunu çözmek için tüm sayılara XOR yapmanız gerekir.
  • Negatif sayılar için bitsel sağa ve sola kaydırma operatörleri kullanılmamalıdır. Kaydırma sayısını belirleyen ikinci işlenen, C ve C++'da tanımsız davranışa yol açan negatif bir sayı içerir. Örneğin, hem 1 >>- 1 hem de 1 << -1 sonuçları tanımsızdır.
  • Sayının kayması tamsayının kapasitesini aşarsa davranış belirtilmez. Örneğin, tamsayılar 64 bit biçiminde depolanıyorsa 1 << 65 belirtilmez.
  • İkinci işlenen (kaydırma sayısını belirleyen) 0 ise kaydırma işlemi gerçekleşmez.

UpGrad ile Bilgisayar Bilimi Yolculuğunuza Başlayın:

Ön uç geliştirme (JavaScript, HTML, CSS), arka uç (NoSQL-MongoDB) ve mikro hizmetler hakkında ayrıntılı bilgi edinmeyi hedefliyorsanız, UpGrad'ın Bilgisayar Bilimleri Yüksek Lisans dersini alabilirsiniz . IIIT Bangalore ve LJMU Mezun Durumu tarafından verilen bu kurs, kariyerinizi dünyanın her yerindeki teknoloji devlerinde bir yazılım mühendisi/tam donanımlı geliştirici olarak belirlemenize yardımcı olur.

Kurs, yeni başlayan ve teknoloji kullanmayan kodlayıcılar için Career Transition Bootcamp'a ücretsiz erişimi kapsar. Bu kursta ondan fazla programlama dili ve aracı öğrenecek, sizi sektördeki karmaşık rolleri üstlenmeye kapsamlı bir şekilde hazırlayacaksınız.

C++'da bitsel işleçlerin kullanımı nedir?

C++'da bitsel operatörler, tamsayı veriler üzerinde ikili düzeyde işlemler gerçekleştirir. Bireysel bitlerin manipülasyonunu içeren bit kalıpları üzerinde çalışırlar. Bu nedenle, bit düzeyinde bir işlem, bit düzeyinde programlama olarak da bilinir. C++'daki bitsel işleçler, yalnızca iki basamakta, yani 0 ve 1 üzerinde çalıştıkları için öncelikle daha hızlı hesaplama için kullanılır. Bu işleçler ayrıca test yapabilir ve gerçek bitleri kaydırabilir.

Sol ve sağ kaydırma işleçlerini bir kodda birlikte kullanabilir misiniz?

Evet, sola kaydırma ve sağa kaydırma işleçlerini birleştirebilir ve bundan sonra verileri bir tamsayı ifadesinden çıkarabilirsiniz.

Tamamlayıcı operatör tüm kod dizisini çeviriyor mu?

Hayır, değil. 1'leri ve 0'ları çevirir. Böylece, tüm 1'ler 0 olur ve tersi de geçerlidir.

Bitwise tümleyen operatörünün diğer adı neden birinin tümleyen operatörüdür?

Bunun nedeni, her zaman yalnızca bir işlenen veya değer almasıdır. Tekli bir operatördür. Herhangi bir bit üzerinde bir tümleyen gerçekleştirdiğinizde, tüm 0'lar 1 olur ve bunun tersi de geçerlidir. Örneğin 1111 0000 değerinde bir tamsayı ifadeniz varsa. Bitsel tümleyen işlemini gerçekleştirdikten sonra değer 0000 1111 olur.