Flipping
Byte flip e word flip scambieranno byte o parole.
Tecnicamente funziona così:
Diciamo che abbiamo un valore di due byte (esadecimale): 0x3344
Il numero è composto da due byte, quello inferiore è 0x44 e quello superiore è 0x33, quindi inserirli in due celle immaginarie di una dimensione in byte:
[33][44]
Ora capovolgi le celle:
[44][33]
Quindi il valore di byte capovolto sarà 0x4433
Lo stesso modo con le parole, considerando che la parola è composta da due byte.
Supponiamo di avere un valore di due parole: 0x12345678
Dividili in due celle immaginarie, ora contenenti una parola (2 byte) ciascuna:
[1234][5678]
Ora capovolgi le celle:
[5678][1234]
Quindi il valore capovolto della parola sarà 0x56781234
Spostamento
Lo spostamento sposta i valori a bit.
Che cosa significa?
Prendiamo un numero decimale molto semplice: 5
Quindi, convertiamolo nella sua rappresentazione binaria: 101
Quindi, spostiamolo a sinistra di 1:
[101] << [1010]
Abbiamo praticamente spostato l'intera sequenza binaria a sinistra di una posizione e riempito lo spazio vuoto con zero.
Ora fai lo stesso, ma con lo spostamento a destra:
[101] >> [010]
il nostro numero è 10 ora. L'1 inferiore si perde spostando a destra. Lo zero a sinistra è solo per la visualizzazione e non ha valore.
// Tecnicamente c'è un flag della CPU che indica che il bit è stato perso, ma non è rilevante per la calcolatrice.
Rotazione
La rotazione funziona come quando si cambia con un'eccezione: i bit non vengono mai persi.
Quindi, prendiamo lo stesso valore decimale 5 e la sua rappresentazione binaria 101.
Quindi lo ruotiamo all'interno di un byte:
[00000101] ROR [10000010]
Come puoi vedere, il [1] che è stato perso sul diritto allo spostamento è stato riportato all'inizio del nostro byte.
Lo stesso con lo spostamento a sinistra, eseguiamo una serie di rotazioni di 1 bit a sinistra fino a portare un bit:
[00000101] ROL [00001010]
[00001010] ROL [00010100]
[00010100] ROL [00101000]
[00101000] ROL [01010000]
[01010000] ROL [10100000]
[10100000] ROL [01000001]