Come utilizzare il calcolatore di programmazione in OS X?

6

Sto cercando di sfruttare al meglio il calcolatore di programmazione in OS X, ma non conosco queste funzioni:

  • byte flip
  • parola capovolgi
  • X <
  • X > > Y
  • RoL / RoR (sono questi solo sll / srl?)

È anche possibile eseguire un complemento a due su un intervallo più ristretto, cioè 16 bit anziché 64 bit?

    
posta maregor 21.12.2014 - 23:59
fonte

2 risposte

6

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]
    
risposta data 22.12.2014 - 04:29
fonte
1
  • byte flip / word flip - non sono sicuro di questi
  • X<<Y / X>>Y - bitshift X a sinistra / destra Y volte
  • RoL / RoR - Ruota a sinistra / a destra, simile a bitshifing, tranne che i bit si avvolgono in modo circolare
risposta data 22.12.2014 - 00:49
fonte

Leggi altre domande sui tag