Assembly/Rappresentazione dati/Numeri positivi e negativi

Indice del libro

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

Operazioni di shift su bits

Torna a

Assembly

Modulo successivo

Campi di bit e Packed Data