Comment utiliser le séparateur | l'opérateur dans la programmation de c

Vous êtes déjà familier avec la prise de décisions logiques opérateurs de programmation C: pour ET et || de OR. Dans le l'évaluation, les deux éléments doit être vrai pour que la déclaration soit évalué comme vrai-pour la || l'évaluation, seulement l'un des éléments doit être vrai.

Au niveau atomique, les opérateurs et | effectuer des opérations similaires, mais sur une base bit par bit. L'effet net est que vous pouvez utiliser le et | opérateurs de manipuler des bits individuels:

L'| est l'opérateur OR, également connu sous le OU inclusif.

La est le bit à bit ET opérateur.

Le ou SET montre comment utiliser l'opérateur OR bits dans un octet. La valeur ou est défini comme l'ensemble constante à la ligne 2. Il est binaire 00100000.

LA OU SET




#include #define SET 32char * binbin (int n) -int main () int Bor, entraînera-printf ("Entrez une valeur entre 0 et 255:") -scanf ("% d", bor) -se traduire = bor omble * binbin (int n) {bin static char [9] -int x-pour (x = 0 XLT; 8 x ++) {bin [x] = n 0x80? '1': '0'-n lt; lt; = 1-} bin [x] = ' 0'-retour (bin) -}

Ligne 12 calcule l'opération OU entre une entrée de valeur, Bor, et la constante de SET. Le résultat est affiché en trois colonnes: opérateur, chaîne binaire, et la valeur décimale. Le résultat de l'opération de fin est que les bits mis à 1 dans la valeur de SET seront également mis à 1 dans la valeur de Bor.

Exercice 1: Tapez le code source de la ou de Set dans votre éditeur pour créer un nouveau programme. Construire et exécuter le programme.

Voici la sortie pour la valeur 65:

Tapez une valeur entre 0 et 255: 6501000001 65 | 00100000 32 01100001 97 =

Vous pouvez le voir dans la sortie binaire comment le sixième bit est réglé dans le résultat.

Qu'est-ce que cela veut dire?

Cela signifie que vous pouvez manipuler des valeurs au niveau binaire, qui fait avoir des conséquences intéressantes pour certaines opérations mathématiques, comme indiqué dans Up avec ce texte.

AVEC CE TEXTE

#include main () {entrée char int [64] ch-int -int x = 0-printf ("Tapez en majuscules:") -fgets (entrée, 63, stdin) -Pendant (entrée [x] = '! n ') 32-putchar (ch) -x ++ - putchar (' n ') - retour (0) -}

Exercice 2: Démarrez un nouveau projet en utilisant le code de source indiqué sur Up avec ce texte. Construire et exécuter.

En raison de la façon dont les codes ASCII carte entre les caractères majuscules et minuscules, vous pouvez basculer le cas en réglant simplement le sixième bit dans un octet.


» » » » Comment utiliser le séparateur | l'opérateur dans la programmation de c