7 votes

Comment utiliser la calculatrice de programmation dans OS X ?

J'essaie de tirer le meilleur parti de la calculatrice de programmation sous OS X, mais je ne connais pas ces fonctions :

  • retournement d'octet
  • retournement de mots
  • X<
  • X>>Y
  • RoL/RoR (est-ce que ce sont juste des sll/srl ?)

Est-il également possible d'effectuer un complément à deux sur une plage plus étroite, c'est-à-dire 16 bits au lieu de 64 bits ?

7voto

Rilakkuma Points 476

Flipping

Le retournement d'octet et le retournement de mot permettent d'échanger des octets ou des mots. Techniquement, cela fonctionne comme suit :

Disons que nous avons une valeur de deux octets (hexadécimale) : 0x3344

Le nombre est composé de deux octets, le plus bas est 0x44, et le plus haut est 0x33, alors mettons-les dans deux cellules imaginaires d'un octet :

[33][44]

Maintenant, retournez les cellules :

[44][33]

Par conséquent, la valeur inversée de l'octet sera 0x4433.

Il en va de même pour les mots, un mot étant constitué de deux octets. Supposons que nous ayons une valeur de deux mots : 0x12345678

Divisez-les en deux cellules imaginaires, contenant maintenant un mot (2 octets) chacune :

[1234][5678]

Maintenant, retournez les cellules :

[5678][1234]

Par conséquent, la valeur du mot inversé sera 0x56781234.

Déplacement

Le décalage déplace les valeurs par bit. Qu'est-ce que cela signifie ?

Prenons un nombre décimal très simple : 5. Puis, convertissons-le en sa représentation binaire : 101 Puis, déplaçons-le vers la gauche de 1 :

[101] << [1010]

En fait, nous avons déplacé toute la séquence binaire d'une position vers la gauche et rempli l'espace vide avec un zéro.

Maintenant, faites la même chose, mais en déplaçant la droite :

[101] >> [010]

notre nombre est de 10 maintenant. Le 1 inférieur est perdu en se décalant vers la droite. Le zéro à gauche est juste pour l'affichage et n'a pas de valeur. // Techniquement, il y a un drapeau CPU qui indique que le bit a été perdu, mais il n'est pas pertinent pour la calculatrice.

Rotation

La rotation fonctionne absolument comme le décalage, à une exception près : les bits ne sont jamais perdus. Ainsi, nous prenons la même valeur décimale 5 et sa représentation binaire 101. Puis nous la faisons pivoter vers la droite dans un octet :

[00000101] ROR [10000010]

Comme vous pouvez le voir, le [1] qui a été perdu lors du décalage vers la droite a été reporté au début de notre octet.

De même pour le décalage vers la gauche, effectuons une série de rotations d'un bit vers la gauche jusqu'à ce que nous ayons un bit de report :

[00000101] ROL [00001010]
[00001010] ROL [00010100]
[00010100] ROL [00101000]
[00101000] ROL [01010000]
[01010000] ROL [10100000]
[10100000] ROL [01000001]

1voto

Mike Points 1018
  • byte flip / word flip - Je ne suis pas sûr de ces derniers
  • X<<Y / X>>Y - bitshift X à gauche/droite Y fois
  • RoL / RoR - Rotation gauche/droite, similaire au bithifing, sauf que les bits s'enroulent de façon circulaire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X