Module: Spostamenti binari (C++)


Problem

1/4

Determinare il segno di un numero

Theory Click to read/hide

Operazioni sui bit

Tutti i numeri nella memoria del computer sono memorizzati in forma binaria, ad es. come una sequenza di 0 e 1. Per memorizzare i numeri nella memoria del computer, viene utilizzato un numero finito di bit. A causa di questo numero, il computer dispone di un intervallo limitato e i risultati del calcolo potrebbero essere imprecisi. Un numero intero può essere memorizzato in 8, 16, 32 o 64 bit di memoria. Ogni bit aggiuntivo espande l'intervallo di valori possibili di 2. 
Le operazioni con numeri positivi e negativi vengono eseguite nel processore utilizzando gli stessi algoritmi.

Con l'aiuto di operazioni logiche bit a bit, puoi controllare i singoli bit dei registri del processore e dei dispositivi esterni. 
 
Operazione C++ Destinazione
a & b Bitwise And per a e b
a | b OR bit a bit per a e b
a ^ b OR per a e b
~a Inversione di bit per a
a << b Sposta bit a sinistra da a a b
a >> b Spostamento bit a destra di a in b



Operazione AND
Utilizzando l'operazione "AND" puoi azzerare (impostare a zero) i bit per i quali la maschera è 0! 
 
Maschera – una costante che definisce l'ambito dell'operazione logica sui bit di un numero a più bit.

D - dati, M - maschera

 

Operazione OR
L'operazione "OR" può essere utilizzata per scrivere un 1 nei bit per i quali la maschera è 1!

 

Operazione OR esclusivo 
Usando l'operazione "XOR" puoi invertire i bit per i quali la maschera è 1!


 

Sposta a sinistra
Uno spostamento logico (bit per bit)a sinistra di 1 bit raddoppia un numero intero positivo.

 

Sposta a destra
Booleano (bit per bit) .sposta a destra di 1  divide un numero intero positivo per 2.


Poiché uno spostamento a destra imposta il bit di segno sulle posizioni vacanti, il segno di x può essere determinato spostando a destra l'intera lunghezza della variabile.

Problem

Indica il numero x. Determina il segno del numero.

Aggiungi la parte di codice mancante al programma.
 
Esempi
# Input Uscita
1 10 1
2 -10 -1
3 0 0