Diferența dintre semnat și nesemnat Diferența dintre

Anonim

Semnat vs Unsigned

Sistemul numerelor noastre se extinde de la infinit negativ la infinit pozitiv cu zero la dreapta. Cu toate acestea, în programare, există în principiu două tipuri de numere; semnată și nesemnată. Principala diferență dintre un număr semnat și un număr nesemnificat este capacitatea de a utiliza numere negative. Numerele nesemnate pot avea valori de zero sau mai mari. În schimb, numerele semnate sunt mai naturale, cu o gamă care include numere negative la pozitive.

Crearea numerelor semnate și nesemnate a fost determinată de necesitatea reprezentării valorilor numerice cu resurse foarte limitate. De exemplu, folosind 8 biți, aveți doar un total de 256 de combinații. Cu un număr nesemnificat, înseamnă orice valoare între 0 și 255. În schimb, având un număr semnat înseamnă că pierdeți deja un pic pentru reprezentarea semnului. Cu 7 biți aveți cel mult 128 de combinații, astfel încât gama dvs. cu un număr de 8 biți semnate este de la -128 la 127. Deci, dacă aveți resurse limitate, ca în primele zile de calcul, utilizarea numărului nesemnat a fost calea de parcurs.

Atunci când folosiți numerele semnate și nesemnate în programare, este mai sigur să le folosiți pe unul sau pe celălalt, deoarece simultan, ambele pot avea ca rezultat probleme. Primul este când comparați un nesemnat cu un număr semnat. Acest lucru are ca rezultat avertismente, dar compilatorul ar putea să-l compileze oricum. Cea de-a doua problemă și mai gravă este atunci când atribuiți conținutul unui număr nesemnificat unui număr semnat. Dacă valoarea numărului nesemnat este mai mare decât valoarea maximă a numărului semnat, aceasta ar duce la o eroare.

Pe măsura dezvoltării tehnologiei, resursele au devenit mai abundente, iar utilizarea numerelor nesemnate devine din ce în ce mai puțin necesară. Pentru a ilustra acest lucru, rețineți că un număr de 32 biți lung poate avea o valoare maximă semnată de 2 milioane sau 4 milioane dacă nu este semnată. Când vă mutați în 64 de biți, diferența se situează între 90 și 180 de quintilion; valori rareori folosite în cazul în care există programe comune.

Rezumat:

1. Numerele neimpozitate includ numai numere zero și pozitive, în timp ce numerele semnate includ numere negative.

2. Numerele semnate au jumătate din valoarea maximă a numerelor nesemnate.

3. Amestecarea numerelor semnate și nesemnate poate duce la probleme.

4. Folosirea numerelor semnate sau nesemnate nu au o influență prea mare în aplicațiile moderne.