GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux C Programming Tutorial Teil 14 - Praktische Beispiele für bitweise Operatoren

In einem unserer früheren Artikel haben wir die Grundlagen bitweiser Operatoren besprochen. Ich hoffe, Sie haben diesen Artikel gelesen und sind nun bereit, einige praktische Anwendungsbeispiele dieser Operatoren zu sehen und zu verstehen. Fangen wir also ohne weiteres an.

1. Werte zweier Variablen vertauschen

Ich bin sicher, Sie kennen die Logik, um die Werte zweier Variablen auszutauschen. Es geht darum, eine dritte Variable zu nehmen, um einen Wert vorübergehend zu speichern und diesen Wert dann einer der Variablen zuzuweisen (deren ursprünglicher Wert bereits der anderen Variablen zugewiesen wurde).

Wenn beispielsweise „a“ und „b“ Variablen sind, deren Werte ausgetauscht werden müssen, und „c“ die temporäre Variable ist, dann sieht die Standardlogik folgendermaßen aus:

c = a;
a = b;
b = c;

Aber wussten Sie, dass dieser gesamte Austauschprozess über bitweise Operatoren durchgeführt werden kann? Ja, das stimmt, und die Logik benötigt in diesem Fall nicht einmal eine dritte Variable. Hier ist der Code:

#include <stdio.h>

int main()
{
int a, b;

printf("Enter first number: ");
scanf("%d", &a);

printf("Enter second number: ");
scanf("%d", &b);

printf("As per your input, a = %d, and b = %d", a,b);

a = a ^ b;
b = a ^ b;
a = a ^ b;

printf("\nAfter swapping, a = %d, and b = %d", a,b);


return 0;
}

Hier ist die Ausgabe:

Enter first number: 7 
Enter second number: 2
As per your input, a = 7, and b = 2
After swapping, a = 2, and b = 7

2. Überprüfen Sie die Anzahl der binären '1's in einer Zahl

Manchmal befinden Sie sich möglicherweise in einer Situation, in der Sie die Anzahl der auf „1“ gesetzten Bits in einer Zahl zählen müssen. Sie werden froh sein zu wissen, dass Sie dies ganz einfach mit bitweisen Operatoren tun können. Hier ist die Logik:

#include <stdio.h>

int main()
{
int a, num_of_bits = 0;

printf("Enter a number: ");
scanf("%d", &a);

while(a)
{
if(a & 1)
num_of_bits++;

a = a >> 1;
}

printf("\nNumber of binary 1s in this number is %d", num_of_bits);

return 0;
}

Hier ist die Ausgabe:

Enter a number: 5 

Number of binary 1s in this number is 2

3. C-Programm zum Prüfen, ob die angegebene Bitposition 1 ist oder nicht

Manchmal, besonders wenn Sie an einem Code arbeiten, der sich auf Computernetzwerke (Protokolle usw.) bezieht, müssen Sie überprüfen, ob eine bestimmte Bitposition auf 1 gesetzt ist oder nicht. Dies kann leicht mit bitweisen Operatoren erfolgen.

Hier ist der Code:

 #include <stdio.h>

int main()
{
int num, position, temp;

printf("Enter a number: ");
scanf("%d", &num);

printf("Enter the bit position (keeping zero as base index and 31 as max): ");
scanf("%d", &position);

if(((num>>position)&1) == 1)
printf("\nBit at the position is 1");
else
printf("\nBit at the position is 0");

return 0;
}

Hier ist die Ausgabe:

Enter a number: 2 
Enter the bit position (keeping zero as base index and 31 as max): 3

Bit at the position is 0

4. Dezimalzahl in ihre Binärform umwandeln

Bitweise Operatoren können auch verwendet werden, um eine Dezimalzahl in ihre Binärform umzuwandeln. Hier ist eine Logik dafür:

#include <stdio.h>

int main()
{
int num, i = 0, temp = 0;
int bin[32] = {0}; // this will initialize all array elements to 0

/* Input number from user */
printf("Enter any number: ");
scanf("%d", &num);

for(i =31; i>=0; i--)
{
if((num & 1) == 1)
{
bin[i] = 1;

num = num>>1;
}

printf("The binary form of the number you entered is: ");

for(i=0; i<32; i++)
{
printf("%d",bin[i]);
}

return 0;
}

Hier war die Ausgabe in meinem Fall:

Enter any number: 15 
The binary form of the number you entered is: 00000000000000000000000000001111

Schlussfolgerung

Die vier Beispiele, die wir hier gezeigt haben, sollten ausreichen, um Ihnen eine gute Vorstellung davon zu geben, wie bitweise Operatoren in realen Szenarien verwendet werden können. Probieren Sie diese auf Ihren Maschinen aus, optimieren Sie sie und lassen Sie sie mehr oder etwas Neues tun. Im Zweifelsfall oder bei Fragen hinterlassen Sie hier einen Kommentar.


Linux
  1. C-Programmier-Tutorial Teil 5 - Zeichenvariablen

  2. Linux C-Programmier-Tutorial Teil 10 - Variable Gültigkeitsbereiche

  3. Linux C-Programmier-Tutorial Teil 9:Strings

  4. Linux C-Programmier-Tutorial Teil 8 – Aufruf nach Wert vs. Aufruf nach Zeiger/Adresse

  5. Linux C-Programmier-Tutorial Teil 8 – Aufruf nach Wert vs. Aufruf nach Zeiger/Adresse

Lernen Sie Git-Befehle mit praktischen Beispielen unter Linux – Teil 1

5 praktische Beispiele für den „cd“-Befehl unter Linux

16 Praktische Beispiele für den Traceroute-Befehl unter Linux

20 praktische Beispiele für den Chown-Befehl unter Linux

15 Praktische Beispiele für den Locate-Befehl unter Linux

12 praktische Beispiele für In Command unter Linux