Opérateurs au niveau du bit dans Objective-C
Les opérateurs Bitwise pris en charge par le langage Objective-C sont répertoriés dans le tableau suivant. Supposons que la variable A a 60 et la variable B 13, alors -
Opérateur | La description | Exemple |
---|---|---|
& | L'opérateur binaire AND copie un bit dans le résultat s'il existe dans les deux opérandes. | (A & B) donnera 12, soit 0000 1100 |
| | L'opérateur OR binaire copie un bit s'il existe dans l'un ou l'autre des opérandes. | (A | B) donnera 61, soit 0011 1101 |
^ | L'opérateur XOR binaire copie le bit s'il est défini dans un opérande mais pas dans les deux. | (A ^ B) donnera 49, soit 0011 0001 |
~ | L'opérateur de complément Binary Ones est unaire et a pour effet de «retourner» les bits. | (~ A) donnera -61, qui est 1100 0011 sous la forme du complément à 2. |
<< | Opérateur de décalage binaire gauche. La valeur des opérandes de gauche est déplacée vers la gauche du nombre de bits spécifié par l'opérande de droite. | Un << 2 donnera 240, soit 1111 0000 |
>> | Opérateur de décalage binaire vers la droite. La valeur des opérandes de gauche est déplacée vers la droite du nombre de bits spécifié par l'opérande de droite. | Un >> 2 donnera 15, soit 0000 1111 |
Exemple
Essayez l'exemple suivant pour comprendre tous les opérateurs binaires disponibles dans le langage de programmation Objective-C -
#import <Foundation/Foundation.h>
int main() {
unsigned int a = 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
NSLog(@"Line 1 - Value of c is %d\n", c );
c = a | b; /* 61 = 0011 1101 */
NSLog(@"Line 2 - Value of c is %d\n", c );
c = a ^ b; /* 49 = 0011 0001 */
NSLog(@"Line 3 - Value of c is %d\n", c );
c = ~a; /*-61 = 1100 0011 */
NSLog(@"Line 4 - Value of c is %d\n", c );
c = a << 2; /* 240 = 1111 0000 */
NSLog(@"Line 5 - Value of c is %d\n", c );
c = a >> 2; /* 15 = 0000 1111 */
NSLog(@"Line 6 - Value of c is %d\n", c );
}
Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -
2013-09-07 22:11:51.652 demo[30836] Line 1 - Value of c is 12
2013-09-07 22:11:51.652 demo[30836] Line 2 - Value of c is 61
2013-09-07 22:11:51.652 demo[30836] Line 3 - Value of c is 49
2013-09-07 22:11:51.652 demo[30836] Line 4 - Value of c is -61
2013-09-07 22:11:51.652 demo[30836] Line 5 - Value of c is 240
2013-09-07 22:11:51.652 demo[30836] Line 6 - Value of c is 15