Flipping
El cambio de bytes y el cambio de palabras intercambiarán bytes o palabras.
Técnicamente funciona así:
Supongamos 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, por lo que vamos a ponerlos en dos celdas imaginarias de un tamaño de un byte:
[33][44]
Ahora, voltea las celdas:
[44][33]
Por lo tanto, el valor de byte volteado será 0x4433
Igual que con las palabras, considerando que 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
Shifting
Desplazando los valores de los desplazamientos a modo de bit.
¿Qué significa?
Tomemos un número decimal muy simple: 5
Entonces, vamos a convertirlo a su representación binaria: 101
Entonces, vamos a desplazarlo hacia la izquierda por 1:
[101] << [1010]
Básicamente, movimos toda la secuencia binaria, dejamos una posición y llenamos el espacio vacío con cero.
Ahora haga lo mismo, pero con el desplazamiento hacia la derecha:
[101] >> [010]
nuestro número es 10 ahora. El 1 inferior se pierde moviendo a la derecha. El cero de 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.
Rotating
La rotación funciona absolutamente igual que cambiar 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 dentro de un byte:
[00000101] ROR [10000010]
Como puede ver, el [1] que se perdió en el derecho de desplazamiento se realizó al principio de nuestro byte.
Lo mismo con el desplazamiento a la izquierda, vamos a realizar series de rotaciones de 1 bit a la izquierda hasta que tengamos un bit:
[00000101] ROL [00001010]
[00001010] ROL [00010100]
[00010100] ROL [00101000]
[00101000] ROL [01010000]
[01010000] ROL [10100000]
[10100000] ROL [01000001]