python - 按位“与”、“或”、“异或”运算的使用场景有什么?
阿神
阿神 2017-04-17 18:00:22
0
5
941

按位“与”、“或”、“异或”运算的使用场景有什么?

阿神
阿神

闭关修行中......

répondre à tous(5)
阿神

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).

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. .

PHPzhong

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal