Skillnaden mellan signerade och osignerade



Tecknat vs Osignerad

Vårt talsystemet sträcker sig från negativ oändlighet till positiv oändlighet med noll rätt på mitten. Men i programmering, det finns i princip två typer av nummer; signerad och osignerad. Den huvudsakliga skillnaden mellan ett undertecknat och en osignerad nummer är, ja, förmågan att använda negativa tal. Unsigned tal kan bara ha värden på noll eller större. Däremot undertecknat siffror är mer naturligt med ett sortiment som innehåller negativa till positiva tal.

Skapandet av signerade och osignerade tal föranleddes av behovet att representera numeriska värden med mycket begränsade resurser. Till exempel, med 8 bitar, bara du har totalt 256 kombinationer. Med en osignerad nummer, som varje värde mellan 0 och 255. Däremot har ett signerat antal innebär att du redan förlorar en bit för att representera tecknet. Med 7 bitar har du max 128 kombinationer så ert sortiment med en 8 bitars tecknat antal är från -128 till 127. Så om du har begränsade resurser, som i början av datorer, användning av osignerade tal var rätt väg att gå.

Vid användning av signerade och osignerade nummer i programmering, är det säkrare att bara använda en eller den andra som samtidigt med användning av båda kan leda till problem. Den första är när man jämför en osignerad med ett undertecknat nummer. Detta resulterar vanligtvis i varningar, men kompilatorn kan kompilera det ändå. Den andra och allvarligare problem är när du tilldelar innehållet i en osignerad nummer med ett undertecknat nummer. Om värdet av den osignerade talet är större än det maximala värdet av det signerade nummer, skulle detta resultera i ett fel.



Eftersom tekniken utvecklas, har resurser blir rikligare, och användningen av osignerade nummer blir mindre och mindre nödvändigt. För att illustrera detta, tänk på att en 32 bitars långt tal kan ha maximalt tecknat värde av 2.000.000 eller 4.000.000 om det 's osignerade När du flyttar in 64 bitar, är skillnaden mellan 90 och 180 kvintiljon,. Värden som är sällan om alls i vanliga program.

Sammanfattning:

1. Unsigned nummer omfattar endast noll och positiva tal medan undertecknade siffror inkluderar negativa tal.
2. Signed tal har halv maximivärdet för osignerade nummer.
3. Blandning signerade och osignerade nummer kan leda till problem.