C++

C++ Bitsel Operatörler

C++ Bitsel Operatörler
Bu yazıda, C++ programlama dilindeki bitsel operatörleri tartışacağız. Bitsel işlemleri ayrıntılı olarak anlamak için birkaç çalışma örneği göreceğiz. C++'da bitsel operatörler bireysel bit seviyesinde çalışır.

Bitwise Operatörlerine Kısa Bir Bakış

Operatör, derleyiciye belirli matematiksel veya mantıksal işlemleri gerçekleştirmesini söyleyen bir semboldür. C++'da çeşitli operatör türleri vardır, örneğin:

  1. Aritmetik operatörler
  2. Mantıksal operatörler
  3. İlişkisel Operatörler
  4. Atama Operatörleri
  5. Bitsel Operatörler
  6. Çeşitli Operatörler

Tüm Bitwise operatörleri bireysel bit seviyesinde çalışır. Bitsel operatör yalnızca tamsayı ve karakter veri türlerine uygulanabilir. Örneğin, 32 bit boyutunda bir tamsayı tipi değişkeniniz varsa ve bit düzeyinde DEĞİL işlemi uygularsanız, bit düzeyinde NOT operatörü tüm 32 bit için uygulanacaktır. Böylece, sonunda, değişkendeki tüm 32 bit ters çevrilir.

C++'da kullanılabilen altı farklı bitsel operatör vardır:

  1. Bitsel VEYA [“|” olarak gösterilir]
  2. Bitsel VE [“&” olarak gösterilir]
  3. Bitsel DEĞİL [“~” olarak gösterilir]
  4. Bitsel XOR [“^” olarak gösterilir]
  5. Bitsel Sola Kaydırma [“ olarak temsil edilir<<”]
  6. Bitsel Sağa Kaydırma [“>>” olarak gösterilir]

Bitsel VEYA Doğruluk Tablosu

Bitsel VEYA operatörü, en az bir işlenen 1'e ayarlandığında 1 üretir. Bitwise OR operatörünün doğruluk tablosu:

Bit-1 bit-2 Bit-1 | bit-2
0 0 0
0 1 1
1 0 1
1 1 1

Bitsel VE Doğruluk Tablosu

Bitsel AND operatörü, her iki işlenen de 1'e ayarlandığında 1 üretir. Bitwise AND operatörünün doğruluk tablosu:

Bit-1 bit-2 Bit-1 ve Bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitwise NOT Doğruluk Tablosu

Bitsel NOT operatörü işleneni tersine çevirir. Bitwise NOT operatörünün doğruluk tablosu:

Bit-1 ~Bit-1
0 1
1 0

Bitsel XOR Doğruluk Tablosu

Bitsel XOR operatörü, yalnızca ve yalnızca işlenenlerden biri 1'e ayarlanmışsa 1 üretir. Bitwise AND operatörünün doğruluk tablosu:

Bit-1 bit-2 Bit-1 ^ Bit-2
0 0 0
0 1 1
1 0 1
1 1 0

Bitsel Sol Kaydırma Operatörü

Bitsel Sola Kaydırma operatörü, belirtilen sayıda belirtilen bit tarafından kalan tüm bitleri kaydırır. Verinin tüm bitlerini 1 ile sola kaydırırsanız, orijinal veriler 2 ile çarpılacaktır. Benzer şekilde, verilerin tüm bitlerini 2 ile sola kaydırırsanız, orijinal veriler 4 ile çarpılacaktır.

Bitsel Sağa Kaydırma İşleci

Bitsel Sağa Kaydırma operatörü, tüm bitleri belirtilen sayıda belirtilen bit kadar sağa kaydırır. Verinin tüm bitlerini 1 ile sağa kaydırırsanız, orijinal veri 2'ye bölünecektir (tamsayı bölümü). Benzer şekilde, verilerin tüm bitlerini 2 ile sağa kaydırırsanız, orijinal veriler 4'e bölünecektir (tamsayı bölümü).

Örnekler

Şimdi, bitsel işlemlerin temel kavramını anladığımıza göre, C++'daki bitsel işlemleri anlamanıza yardımcı olacak birkaç örneğe bakalım:

Örnek-7 ve 8, C++ programlama dilinde bitsel operatörlerin gerçek dünyadaki kullanımını göstermek içindir.

Örnek-1: Bitsel VEYA Operatörü

Bu örnek programda, Bitwise OR operatörünü göstereceğiz.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int sayı)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayı = 7, ikinci_sayı = 9, sonuç = 0;
// Bitsel VEYA işlem
sonuç = ilk_sayı | saniye_sayısı;
// giriş numaralarını yazdır
cout << endl;
display("İlk Sayı        =  ", first_num);
display("İkinci Sayı       =  ", second_num);
// çıktı değerini yazdır
display("birinci_sayı | ikinci_sayısı =  ", sonuç);
cout << endl;
0 döndür;

Örnek-2: Bitsel VE Operatör

Bu örnek programda, Bitwise AND operatörünü göstereceğiz.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int numarası)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayı = 7, ikinci_sayı = 9, sonuç = 0;
// Bitsel VE işlem
sonuç = first_num & second_num;
// giriş numaralarını yazdır
cout << endl;
display("İlk Sayı        =  ", first_num);
splay("İkinci Sayı       =  ", saniye_sayısı);
// çıktı değerini yazdır
display("birinci_sayı ve ikinci_sayısı =  ", sonuç);
cout << endl;
0 döndür;

Örnek-3: Bitsel DEĞİL Operatör

Bu örnek programda, Bitwise NOT operatörünün C'de nasıl çalıştığını anlayacağız++.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int sayı)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayısı = 7, ikinci_sayısı = 9, sonuç_1 = 0, sonuç_2 = 0;
// Bitsel DEĞİL işlemi
sonuç_1 = ~ilk_sayı;
sonuç_2 = ~saniye_sayısı;
// giriş numaralarını ve çıkış değerini yazdır
cout << endl;
display("İlk Sayı    =  ", first_num);
display("~first_num         =  ", sonuç_1);
cout << endl;
// giriş numaralarını ve çıkış değerini yazdır
display("İkinci Sayı   =  ", second_num);
display("~second_num        =  ", sonuç_2);
cout << endl;
0 döndür;

Örnek-4: Bitsel XOR Operatörü

Bu program, Bitwise XOR operatörünün C'de nasıl çalıştığını açıklamayı amaçlamaktadır++.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int numarası)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayı = 7, ikinci_sayısı = 9, sonuç = 0;
// Bitsel XOR işlemi
sonuç = birinci_sayı ^ ikinci_sayısı;
// giriş numaralarını yazdır
cout << endl;
display("İlk Sayı        =  ", first_num);
display("İkinci Sayı       =  ", second_num);
// çıktı değerini yazdır
display("birinci_sayı ^ ikinci_sayısı =  ", sonuç);
cout << endl;
0 döndür;

Örnek-5: Bitsel Sola Kaydırma İşleci

Şimdi Bitwise Left Shift operatörünün örneğini göreceğiz. Bu programda tamsayı tipinde first_num ve second_num olmak üzere iki sayı belirledik. Burada, "birinci_sayı" bir bit sola kaydırılır ve "ikinci_sayı" iki bit sola kaydırılır.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int sayı)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayısı = 7, ikinci_sayısı = 9, sonuç_1 = 0, sonuç_2 = 0;
// Bitsel Sola Kaydırma işlemi
sonuç_1 = first_num << 1;
sonuç_2 = saniye_sayısı << 2;
// giriş numaralarını ve çıkış değerini yazdır
cout << endl;
display("İlk Sayı    =  ", first_num);
display("first_num << 1     =  ", result_1);
cout << endl;
// giriş numaralarını ve çıkış değerini yazdır
display("İkinci Sayı   =  ", second_num);
display("saniye_sayısı << 2    =  ", result_2);
cout << endl;
0 döndür;

Örnek-6: Bitsel Sağa Kaydırma Operatörü

Şimdi Bitwise Right Shift operatörünü anlamak için başka bir örnek göreceğiz. Tamsayı tipinde first_num ve second_num olmak üzere iki sayı belirledik. Burada, "first_num" bir bit sağa kaydırılır ve "second_num" iki bit sağa kaydırılır.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int sayı)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayısı = 7, ikinci_sayısı = 9, sonuç_1 = 0, sonuç_2 = 0;
// Bitsel Sağa Kaydırma işlemi
sonuç_1 = first_num >> 1;
sonuç_2 = saniye_sayısı >> 2;
// giriş numaralarını ve çıkış değerini yazdır
cout << endl;
display("İlk Sayı    =  ", first_num);
display("first_num >> 1     =  ", sonuç_1);
cout << endl;
// giriş numaralarını ve çıkış değerini yazdır
display("İkinci Sayı   =  ", second_num);
display("second_num >> 2    =  ", sonuç_2);
cout << endl;
0 döndür;

Örnek-7: Biti Ayarla

Bu örnek, bit düzeyinde operatörler kullanarak belirli bir bitin nasıl ayarlanacağını göstermeyi amaçlamaktadır.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int sayı)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayı = 7, ikinci_sayı = 9;
// giriş numarasını yazdır - first_num
cout << endl;
display("İlk Sayı           =  ", first_num);
// 5. biti ayarla
first_num |= (1UL << 5);
// Çıktıyı yazdır
display("first_num'un 5. bitini ayarla  =  ", first_num);
cout << endl;
// giriş numarasını yazdır - second_num
cout << endl;
display("İkinci Sayı           =  ", second_num);// 6. biti ayarla
saniye_sayısı |= (1UL << 6);
// Çıktıyı yazdır
display("second_num'un 6. bitini ayarla  =  ", second_num);
cout << endl;
0 döndür;

Örnek-8: Biti Temizle

Bu örnek, bitsel operatörleri kullanarak belirli bir bitin nasıl temizleneceğini göstermeyi amaçlamaktadır.

#Dahil etmek
#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;
// göster() işlevi
void display(string print_msg, int sayı)

bit kümesi<16> myBitSet(sayı);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int ana()

int birinci_sayı = 7, ikinci_sayı = 9;
// giriş numarasını yazdır - first_num
cout << endl;
display("İlk Sayı           =  ", first_num);
// 2. biti temizle
first_num &= ~(1UL << 2);
// Çıktıyı yazdır
display("first_num'un 2. bitini ayarla  =  ", first_num);
cout << endl;
// giriş numarasını yazdır - second_num
cout << endl;
display("İkinci Sayı           =  ", second_num);
// 3. biti temizle
saniye_sayı &= ~(1UL << 3);
// Çıktıyı yazdır
display("second_num'un 3. bitini ayarla  =  ", second_num);
cout << endl;
0 döndür;

Sonuç

Bitsel operatör, öncelikle tamsayı ve karakter veri türü için ayrı bitleri işlemek için kullanılır. Bitsel operatör, gömülü yazılım geliştirmede yoğun olarak kullanılır. Dolayısıyla donanım düzeyine çok yakın bir aygıt sürücüsü veya sistem geliştiriyorsanız bu bitsel operatörleri kullanmak isteyebilirsiniz.

WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...