Differenza tra firmata e non firmata Differenza tra

Anonim

Firmato vs Unsigned

Il nostro sistema numerico si estende dall'infinito negativo all'infinito positivo con zero proprio al centro. Tuttavia, nella programmazione, ci sono fondamentalmente due tipi di numeri; il firmato e non firmato. La principale differenza tra un numero firmato e un numero senza segno è, beh, la possibilità di utilizzare numeri negativi. I numeri senza segno possono avere solo valori pari a zero o superiori. Al contrario, i numeri firmati sono più naturali con un intervallo che include numeri da negativi a positivi.

La creazione di numeri firmati e non firmati è stata motivata dalla necessità di rappresentare valori numerici con risorse molto limitate. Ad esempio, utilizzando 8 bit, hai solo un totale di 256 combinazioni. Con un numero senza segno, significa qualsiasi valore compreso tra 0 e 255. Al contrario, avere un numero firmato significa che hai già perso un po 'per rappresentare il segno. Con 7 bit hai un massimo di 128 combinazioni, quindi la tua gamma con un numero con segno a 8 bit va da -128 a 127. Quindi, se disponi di risorse limitate, come nei primi giorni dell'informatica, l'uso di numeri senza firma era la strada da percorrere.

Quando si utilizzano i numeri con segno e senza segno nella programmazione, è più sicuro usare solo uno o l'altro, poiché entrambi possono causare problemi. Il primo è quando si confronta un non firmato con un numero firmato. Questo in genere comporta degli avvertimenti, ma il compilatore potrebbe compilarlo comunque. Il secondo e più grave problema è quando si assegna il contenuto di un numero senza segno a un numero firmato. Se il valore del numero senza segno è maggiore del valore massimo del numero firmato, si otterrebbe un errore.

Con lo sviluppo della tecnologia, le risorse sono diventate più abbondanti e l'uso di numeri non firmati sta diventando sempre meno necessario. Per illustrare questo, tieni presente che un numero lungo 32 bit può avere un valore massimo di 2 milioni o 4 milioni se non firmato. Quando ci si sposta in 64 bit, la differenza è compresa tra 90 e 180 quintilioni; valori che vengono usati raramente se non nei programmi comuni.

Riepilogo:

1. Il numero senza firma include solo numeri zero e positivi mentre i numeri con segno includono numeri negativi.

2. I numeri firmati hanno la metà del valore massimo dei numeri senza segno.

3. La combinazione di numeri con segno e senza segno può causare problemi.

4. L'uso di numeri firmati o non firmati ha scarsa rilevanza nelle applicazioni moderne.