Assembly/Rappresentazione dati/Numeri positivi e negativi
Fino ad ora abbiamo parlato di numeri unsigned. Quando si lavora con i bit, non esistono i comodi segni "+" e "-" che usiamo nel sistema decimale.
Torniamo indietro nel tempo..... Abbiamo detto che un numero binario è composto da infinite cifre. A sinistra di ogni numero binario, si trovano infiniti 0.
Questo tipo di numero binario è positivo. Per trasformarlo in negativo facciamo così (Es: 1101 = 13):
- Invertiamo tutti i valori usando NOT. NOT ...000000000001101 = ...111111111111110010
- Si somma 1 al valore ottenuto. ...111111111110010 + 1 = ...1111111111110011.
...11111111110011 è il valore binario negativo per "13".
Per trasformare un numero negativo in positivo si fa invece così:
- Si invertono tutti i valori con NOT. NOT ...11111111110011 = ...00000001100.
- Si aggiunge 1. ...00000001100 + 1 = ...000000001101
- Siccome gli 0 a sinistra del valore non hanno significato diventa 1101 = 13
Modulo precedente | Torna a | Modulo successivo |