Ce sont tous des opérateurs binaires et sont des concepts d'assemblage. De manière générale, ils ne sont pas utilisés. Mais comme ce sont des opérateurs de niveau relativement bas, leur vitesse de fonctionnement est très rapide et ils peuvent également être utilisés dans des opérations régulières. Par exemple : et les opérateurs sont généralement utilisés pour effacer. L'opérateur AND peut être utilisé pour convertir un entier en un entier court (convertissant en fait un mot en mot).
0xffffeeee&0xffff=0xeeee
L'opération Ou est généralement utilisée pour le code complémentaire. Par exemple, un type entier fait 4 octets et 32 bits, ce qui signifie qu'il peut être configuré pour accueillir 32 bits. (TRUE/FALSE), à ce moment vous pouvez utiliser 或 pour définir une certaine position sur 1.
Le OU exclusif est généralement utilisé pour le cryptage De plus, il existe d'autres bizarreries telles que le décalage à gauche pour la multiplication et le décalage à droite pour la division.
Il y a trop de points de connaissances dans ce domaine, et généralement il n'est pas nécessaire de l'étudier spécialement. Si vous en savez plus sur le binaire, vous le comprendrez. Pour être honnête, c'est assez difficile. J'ai écrit pendant longtemps, mais probablement peu de gens pouvaient le comprendre. .
Les opérations sur les bits sont davantage utilisées dans la programmation intégrée et celle des pilotes. Elles sont utilisées lors de l'exploitation directe des registres. Elles ne semblent pas être beaucoup utilisées dans la couche application. Cependant, j'ai l'impression qu'il existe de nombreuses techniques étranges qui peuvent être utilisées. Celle qui m'a le plus impressionné est une question sur leetcode : LeetCode 136. Numéro unique
La question est très simple. L'exigence est de trouver le seul entier qui apparaîtra une fois dans le tableau, tandis que les autres apparaîtront deux fois.
L'idée habituelle est d'utiliser des tables, mais lorsque le tableau est grand, la vitesse est très lente, et puis il y a l'algorithme XOR au niveau du bit. XOR directement tous les nombres du tableau au niveau du bit, et le nombre restant correspond à ce que vous voulez. Quant à savoir pourquoi, vous pouvez effectuer une recherche en ligne pour le savoir.
Prenons un exemple dans un scénario réel Configurez la valeur de certains bits dans un octet. Exemple : Pour définir un certain bit de cette variable, utilisez OR au niveau du bit a = a|0x01, qui définit le dernier bit. Pour extraire la valeur d'un certain bit, vous pouvez utiliser AND au niveau du bit b = a&0x01. est la valeur qui extrait le dernier bit.
L'opération XOR est l'une des opérations principales de la cryptographie.
De nombreux chiffrements symétriques sont basés sur des opérations XOR.
Ce sont tous des opérateurs binaires et sont des concepts d'assemblage. De manière générale, ils ne sont pas utilisés.
Mais comme ce sont des opérateurs de niveau relativement bas, leur vitesse de fonctionnement est très rapide et ils peuvent également être utilisés dans des opérations régulières.
Par exemple :
et les opérateurs sont généralement utilisés pour effacer.
L'opérateur AND peut être utilisé pour convertir un entier en un entier court (convertissant en fait un mot en mot).
L'opération Ou est généralement utilisée pour le code complémentaire.
Par exemple, un type entier fait 4 octets et 32 bits, ce qui signifie qu'il peut être configuré pour accueillir 32 bits. (
TRUE
/FALSE
), à ce moment vous pouvez utiliser或
pour définir une certaine position sur 1.Le OU exclusif est généralement utilisé pour le cryptage
De plus, il existe d'autres bizarreries telles que le décalage à gauche pour la multiplication et le décalage à droite pour la division.
Il y a trop de points de connaissances dans ce domaine, et généralement il n'est pas nécessaire de l'étudier spécialement. Si vous en savez plus sur le binaire, vous le comprendrez. Pour être honnête, c'est assez difficile.
J'ai écrit pendant longtemps, mais probablement peu de gens pouvaient le comprendre. .
Les opérations sur les bits sont davantage utilisées dans la programmation intégrée et celle des pilotes. Elles sont utilisées lors de l'exploitation directe des registres. Elles ne semblent pas être beaucoup utilisées dans la couche application.
Cependant, j'ai l'impression qu'il existe de nombreuses techniques étranges qui peuvent être utilisées. Celle qui m'a le plus impressionné est une question sur leetcode :
LeetCode 136. Numéro unique
La question est très simple. L'exigence est de trouver le seul entier qui apparaîtra une fois dans le tableau, tandis que les autres apparaîtront deux fois.
L'idée habituelle est d'utiliser des tables, mais lorsque le tableau est grand, la vitesse est très lente, et puis il y a l'algorithme XOR au niveau du bit.
XOR directement tous les nombres du tableau au niveau du bit, et le nombre restant correspond à ce que vous voulez. Quant à savoir pourquoi, vous pouvez effectuer une recherche en ligne pour le savoir.
Prenons un exemple dans un scénario réel
Configurez la valeur de certains bits dans un octet.
Exemple :
Pour définir un certain bit de cette variable, utilisez OR au niveau du bit a = a|0x01, qui définit le dernier bit. Pour extraire la valeur d'un certain bit, vous pouvez utiliser AND au niveau du bit b = a&0x01. est la valeur qui extrait le dernier bit.
Masque binaire, bitmap, etc.
Traitement du format binaire (par exemple en-tête TCP)
Cryptographie