Forskel mellem signeret og usigneret Forskel mellem

Anonim

Signed vs Unsigned

Vores talesystem strækker sig fra negativ uendelighed til positiv uendelighed med nul højre i midten. Men i programmeringen er der i grunden to typer tal; den underskrevne og usignerede Hovedforskellen mellem et signeret og et usigneret nummer er også muligheden for at bruge negative tal. Unsigned numbers kan kun have værdier på nul eller større. Derimod er signerede tal mere naturlige med en rækkevidde, der indeholder negative til positive tal.

Oprettelsen af ​​signerede og usignerede numre blev bedt om, at der var behov for at repræsentere numeriske værdier med meget begrænsede ressourcer. Hvis du f.eks. Bruger 8 bits, har du kun i alt 256 kombinationer. Med et usigneret nummer betyder det enhver værdi mellem 0 og 255. I modsætning hertil har et underskrevet nummer, at du allerede mister en smule for at repræsentere tegnet. Med 7 bits har du maksimalt 128 kombinationer, så din rækkevidde med et 8-bit underskrevet nummer er fra -128 til 127. Så hvis du har begrænsede ressourcer, som i de tidlige dage af computing, var det ikke sikkert at bruge usignerede numre.

Når du bruger signerede og usignerede numre i programmeringen, er det mere sikkert at bare bruge den ene eller den anden, da begge sider kan medføre problemer samtidig. Den første er, når du sammenligner en usigneret til et underskrevet nummer. Dette resulterer typisk i advarsler, men kompilatoren kan alligevel kompilere det. Det andet og mere alvorlige problem er, når du tildeler indholdet af et usigneret nummer til et signeret nummer. Hvis værdien af ​​det usignerede nummer er større end den maksimale værdi af det signerede nummer, vil dette resultere i en fejl.

Som udviklet teknologi er ressourcer blevet mere rigelige, og brugen af ​​usignerede tal bliver mindre og mindre nødvendigt. For at illustrere dette skal du huske på, at et 32-bit langt nummer kan have en maksimalt signeret værdi på 2 millioner eller 4 millioner, hvis den er usigneret. Når du flytter til 64 bit, er forskellen mellem 90 og 180 quintillion; værdier, der sjældent anvendes, hvis de overhovedet er fælles programmer.

Sammendrag:

1. Unsigned nummer inkluderer kun nul og positive tal, mens signerede tal inkluderer negative tal.

2. Signerede numre har halvdelen af ​​den maksimale værdi af usignerede numre.

3. At blande signerede og usignerede tal kan resultere i problemer.

4. Brug af signerede eller usignerede numre har ringe leje i moderne applikationer.