Diferența dintre semnată și nesemnată

Semnat vs. Nesemnat

Sistemul nostru de numere 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 un maxim de 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 numerelor nesemnate a fost calea de plecare.

Atunci când utilizați numere semnate și nesemnate în programare, este mai sigur să folosiți unul sau altul, deoarece simultan, ambele pot duce la 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.

Odată cu dezvoltarea 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. Numarul inscris include numai cifre zero si pozitive, in 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. Utilizarea numerelor semnate sau nesemnate nu au o influență prea mare în aplicațiile moderne.