¿Cómo usar la calculadora de programación en OS X?

6

Estoy tratando de sacar el máximo provecho de la calculadora de programación en OS X, pero no conozco estas funciones:

  • byte flip
  • cambio de palabra
  • X <
  • X >> Y
  • RoL / RoR (¿son solo sll / srl?)

¿También es posible realizar un complemento de dos en un rango más estrecho, es decir, 16 bits en lugar de 64 bits?

maregor
fuente
2
Puede pasar el mouse sobre las teclas de la calculadora para ver una breve descripción de lo que hacen. Además, observe los valores binarios para ver un poco mejor lo que realmente está sucediendo.
Asmus
Para limitar el rango de cumplidos de 2 o 1, simplemente Y con FFFF para 16 bits, FF para 8, etc. ASEGÚRESE de mantenerlo en formato hexadecimal mientras realiza esas operaciones, de lo contrario lo estropeará.
MarcusJ
También hay una alternativa a la calculadora de acciones: bitcalc.abeghyan.com
Pablo

Respuestas:

6

Volteando

La inversión de bytes y la inversión de palabras intercambiarán bytes o palabras. Técnicamente funciona así:

Digamos que tenemos un valor de dos bytes (hexadecimal): 0x3344

El número consta de dos bytes, el más bajo es 0x44 y el más alto es 0x33, así que colóquelos en dos celdas imaginarias de un tamaño de byte:

[33][44]

Ahora, voltea las celdas:

[44][33]

Por lo tanto, el valor de byte invertido será 0x4433

De la misma manera con las palabras, considerando la palabra consta de dos bytes. Supongamos que tenemos un valor de dos palabras: 0x12345678

Divídalos en dos celdas imaginarias, que ahora contienen una palabra (2 bytes) cada una:

[1234][5678]

Ahora, voltea las celdas:

[5678][1234]

Por lo tanto, el valor invertido de la palabra será 0x56781234

Cambiando

Desplazar desplaza valores bit a bit. Qué significa eso?

Tomemos un número decimal muy simple: 5 Luego, convirtámoslo a su representación binaria: 101 Luego, cambiemos a la izquierda por 1:

[101] << [1010]

Básicamente, movimos toda la secuencia binaria a la izquierda de una posición y llenamos el espacio vacío con cero.

Ahora haz lo mismo, pero con desplazamiento a la derecha:

[101] >> [010]

Nuestro número es 10 ahora. El 1 inferior se pierde al desplazarse a la derecha. El cero a la izquierda es solo para mostrar y no tiene valor. // Técnicamente, hay un indicador de CPU que indica que se perdió el bit, pero no es relevante para la calculadora.

Giratorio

La rotación funciona absolutamente igual que el desplazamiento con una excepción: los bits nunca se pierden. Entonces, tomamos el mismo valor decimal 5 y su representación binaria 101. Luego lo rotamos a la derecha dentro de un byte:

[00000101] ROR [10000010]

Como puede ver, el [1] que se perdió en el desplazamiento a la derecha se llevó al comienzo de nuestro byte.

Lo mismo con el desplazamiento a la izquierda, realicemos una serie de rotaciones de 1 bit a la izquierda hasta que llevemos un bit:

[00000101] ROL [00001010]
[00001010] ROL [00010100]
[00010100] ROL [00101000]
[00101000] ROL [01010000]
[01010000] ROL [10100000]
[10100000] ROL [01000001]
Rilakkuma
fuente
Esto no responde la pregunta wrt sobre cómo lograr esto con la aplicación Calculadora. Tampoco aborda la pregunta de cumplido de los 2. La pregunta aún requiere una respuesta como 'presione el botón x luego el botón y, etc.' O la pregunta no está formulada correctamente o esta, la respuesta actualmente aceptada, no aborda la pregunta directamente.
Rondo
El cambio de palabra es otra forma de decir el intercambio endian por cierto.
MarcusJ
@MarcusJ o más bien lo contrario. Voltear es un término amplio y genérico, el intercambio endian se reduce a la aplicación particular.
Rilakkuma
1
  • byte flip/ word flip- no estoy seguro acerca de estos
  • X<<Y/ X>>Y- bitshift X a la izquierda / derecha Y veces
  • RoL/ RoR- Girar a la izquierda / derecha, similar al desplazamiento de bits, excepto que los bits se envuelven de forma circular
Alejandro
fuente