Forskjellen mellom signert og usignert

Signert vs Unsigned

Vårt talesystem strekker seg fra negativ uendelighet til positiv uendelighet med null rett i midten. Men i programmeringen er det i utgangspunktet to typer tall; den signerte og usignerte. Hovedforskjellen mellom et signert og et usignert nummer er vel, evnen til å bruke negative tall. Unsigned numbers kan bare ha verdier på null eller høyere. I kontrast er signerte tall naturligere med et område som inneholder negative til positive tall.

Opprettelsen av signerte og usignerte tall ble forårsaket av behovet for å representere numeriske verdier med svært begrensede ressurser. For eksempel bruker du 8 biter, har du totalt 256 kombinasjoner. Med et usignert nummer betyr det en verdi mellom 0 og 255. I motsetning til at et signert nummer betyr at du allerede mister litt for å representere tegnet. Med 7 biter har du maksimalt 128 kombinasjoner, slik at rekkevidden din med et 8-biters signert nummer er fra -128 til 127. Så hvis du har begrensede ressurser, som i de tidlige dagene av databehandling, var det ikke mulig å bruke usignerte tall.

Når du bruker signerte og usignerte tall i programmeringen, er det sikrere å bare bruke den ene eller den andre, samtidig som begge kan føre til problemer. Den første er når du sammenligner en usignert til et signert nummer. Dette resulterer vanligvis i advarsler, men kompilatoren kan likevel kompilere det. Det andre og mer alvorlige problemet er når du tilordner innholdet til et usignert nummer til et signert nummer. Hvis verdien av det usignerte nummeret er større enn maksimumsverdien til det signerte nummeret, vil dette resultere i en feil.

Etter hvert som teknologien er utviklet, har ressursene blitt rikeligere, og bruken av usignerte tall blir mindre og mindre nødvendig. For å illustrere dette må du huske på at et 32-biters langt tall kan ha en maksimal signert verdi på 2 millioner eller 4 millioner hvis den er usignert. Når du går inn i 64 biter, er forskjellen mellom 90 og 180 quintillion; verdier som sjelden brukes i det hele tatt i vanlige programmer.

Sammendrag:

1.Undesignet nummer inkluderer bare null og positivt tall mens signerte tall inkluderer negative tall.
2.Tegnede tall har halvparten av maksimalverdien av usignerte tall.
3.Mixing signerte og usignerte tall kan føre til problemer.
4.Using signerte eller usignerte tall har lite lager i moderne applikasjoner.