GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de programmation Linux C Partie 14 - Exemples pratiques d'opérateurs au niveau du bit

Dans l'un de nos articles précédents, nous avons abordé les bases des opérateurs au niveau du bit. J'espère que vous avez parcouru cet article et que vous êtes maintenant prêt à voir et à comprendre quelques exemples d'utilisation pratiques de ces opérateurs. Alors sans plus tarder, commençons.

1. Échange les valeurs de deux variables

Je suis sûr que vous connaissez la logique pour échanger les valeurs de deux variables. Il s'agit de prendre une troisième variable pour stocker temporairement une valeur, puis d'affecter cette valeur à l'une des variables (dont la valeur d'origine a déjà été affectée à l'autre variable).

Par exemple, si 'a' et 'b' sont des variables dont les valeurs doivent être permutées, et 'c' est la variable temporaire, alors voici comment se passe la logique standard :

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

Mais saviez-vous que tout ce processus d'échange peut être effectué via des opérateurs au niveau du bit ? Oui, c'est vrai, et la logique, dans ce cas, ne nécessite même pas une troisième variable. Voici le code :

#include 

int main()
{
int a, b;

printf("Entrez le premier chiffre :");
scanf("%d", &a);

printf("Entrez le deuxième chiffre :");
scanf("%d", &b);

printf("Selon votre entrée, a =%d, et b =%d", a,b);

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

printf("\nAprès l'échange, a =%d, et b =%d", a,b);


renvoie 0 ;
}

Voici le résultat :

Entrez le premier chiffre :7 
Entrez le deuxième chiffre :2
Selon votre saisie, a =7 et b =2
Après l'échange, a =2 et b =7

2. Vérifier le nombre de '1' binaires dans un nombre

Parfois, vous pouvez vous retrouver dans une situation où vous devez compter le nombre de bits définis sur '1' dans un nombre. Vous serez heureux de savoir que vous pouvez facilement le faire en utilisant des opérateurs au niveau du bit. Voici la logique :

#include 

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

printf("Entrez un nombre :");
scanf("%d", &a);

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

a =a>> 1;
}

printf("\nLe nombre de 1 binaires dans ce nombre est %d", num_of_bits);

renvoie 0 ;
}

Voici le résultat :

Entrez un nombre :5 

Le nombre de 1 binaires dans ce nombre est 2

3. Programme C pour vérifier si la position de bit donnée est 1 ou non

Parfois, en particulier lorsque vous travaillez sur un code lié aux réseaux informatiques (protocoles, etc.), vous devez vérifier si une position de bit particulière est définie sur 1 ou non. Cela peut facilement être fait à l'aide d'opérateurs au niveau du bit.

Voici le code :

 #include 

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

printf("Entrez un nombre :");
scanf("%d", &num);

printf("Entrez la position du bit (en gardant zéro comme index de base et 31 comme max) :");
scanf("%d", &position);

if(((num>>position)&1) ==1)
printf("\nLe bit à la position est 1");
else
printf("\nLe bit à la position est 0");

return 0;
}

Voici le résultat :

Entrez un nombre :2 
Entrez la position du bit (en gardant zéro comme index de base et 31 comme max) :3

Le bit à la position est 0

4. Convertir un nombre décimal en sa forme binaire

Les opérateurs au niveau du bit peuvent également être utilisés pour convertir un nombre décimal en sa forme binaire. Voici une logique :

#include 

int main()
{
int num, i =0, temp =0 ;
int bin[32 ] ={0} ; // ceci initialisera tous les éléments du tableau à 0

/* Entrez le nombre de l'utilisateur */
printf("Entrez n'importe quel nombre :");
scanf("%d" , &num);

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

num =num>>1;
}

printf("La forme binaire du nombre que vous avez saisi est :");

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

renvoie 0 ;
}

Voici le résultat dans mon cas :

Entrez n'importe quel nombre :15 
La forme binaire du nombre que vous avez entré est :0000000000000000000000000001111

Conclusion

Les quatre exemples que nous avons montrés ici devraient suffire à vous donner une bonne idée de la façon dont les opérateurs au niveau du bit peuvent être utilisés dans des scénarios réels. Essayez-les sur vos machines, modifiez-les et faites-leur faire plus, ou quelque chose de nouveau. En cas de doute ou de question, déposez un commentaire ici.


Linux
  1. Tutoriel de programmation en C Partie 5 - Variables de caractères

  2. Tutoriel de programmation Linux C Partie 10 - Portées variables

  3. Tutoriel de programmation Linux C Partie 9 :Chaînes

  4. Tutoriel de programmation Linux C Partie 15 - Complément 2s et nombres négatifs

  5. Tutoriel de programmation Linux C Partie 18 :Fonctions récursives

Apprenez les commandes Git avec des exemples pratiques sur Linux - Partie 1

5 exemples pratiques de la commande "cd" sous Linux

16 exemples pratiques de la commande Traceroute sous Linux

20 exemples pratiques de commande Chown sous Linux

15 exemples pratiques de commande Locate sous Linux

12 exemples pratiques d'In Command sous Linux