Ce este o variabilă unsigned în C++?
Probabil ai învățat despre tipurile de variabile și ai aflat că anumite
variabile pot avea valori negative sau pozitive (precum int
, long long
sau char
). Toate aceste tipuri de variabilă au o pereche unsigned
care conține doar valori pozitive.
Cum se reprezintă variabilele pe calculator
Pentru a înțelege mai mult despre tipul unsigned
, trebuie să discutăm despre
cum se reprezintă variabilele în calculator atunci când le declari.
Fiecare variabilă se reprezintă în calculator în binar, ca o înșiruire de
biți. Spre exemplu, tipul int
se reprezintă pe $32$ de biți consecutivi, pe
când tipul long long
se reprezintă pe $64$ de biți, iar tipurile char
și
bool
se reprezintă pe doar $8$ biți.
Să analizăm tipul int
. Dacă acesta are la dispoziție $32$ de biți, atunci în
tipul int
putem memora $2^{32}$ numere diferite (primul bit poate avea valoarea $0$ sau $1$, adică sunt $2$ variante, al doilea bit la fel, …, astfel că sunt $2 * 2 * 2 * … * 2 = 2^{32}$ variante).
Pentru că era necesar să existe și numere negative, nu doar pozitive, tipul
int
numește primul bit bit de semn, mai precis, acesta determină semnul
numărului. Dacă acest bit este $0$, atunci numărul este nenegativ (adică $0$
sau mai mare), pe când dacă este $1$, atunci numărul este negativ (mai mic sau
egal cu $-1$). Prin urmare, int
reține $2^{31}$ numere negative (de la $-2^{31}$ la $-1$) și $2^{31}$ nenegative (de la $0$ la $2^{31} - 1$).
Tipul unsigned int
, sau doar unsigned
, pe de altă parte, nu are un bit de
semn, astfel că cei $32$ de biți sunt folosiți pentru a reprezenta doar numere
pozitive. Prin urmare, tipul unsigned int
reține numere de la $0$ la $2^{32} - 1$.
Ce valori pot reține tipurile unsigned
Tipul unsigned int
Tipul unsigned int
(sau doar unsigned
) reține numere de la $0$ la $2^{32} - 1$, adică de la $0$ la $4.294.967.295$.
Tipul unsigned short
sau unsigned short int
Tipul unsigned short
reține numere de la $0$ la $2^{16} - 1$, adică de la $0$ la $65.535$.
Tipul unsigned long long
Tipul unsigned long long
reține numere de la $0$ la $2^{64} - 1$, adică de la $0$ la $18.446.744.073.709.551.615$.
Tipul unsigned char
Tipul unsigned char
reține valori de la $0$ la $255$.
Alte resurse sau bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0