Forskjell mellom signert og usignert Forskjellen mellom

Anonim

Signert vs Ubetalt

Vårt talesystem strekker seg fra negativ uendelighet til positiv uendelighet med null midt 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 bedt om 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-bits 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 numre i programmering, 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.

Siden 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. Ubetalt nummer inkluderer bare null og positivt tall mens signerte numre inkluderer negative tall.

2. Signerte numre har halvparten av maksimumsverdien av usignerte tall.

3. Ved å blande signerte og usignerte tall kan det oppstå problemer.

4. Bruke signerte eller usignerte tall har lite lager i moderne applikasjoner.