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 3232 de biți consecutivi, pe când tipul long long se reprezintă pe 6464 de biți, iar tipurile char și bool se reprezintă pe doar 88 biți.

Să analizăm tipul int. Dacă acesta are la dispoziție 3232 de biți, atunci în tipul int putem memora 2322^{32} numere diferite (primul bit poate avea valoarea 00 sau 11, adică sunt 22 variante, al doilea bit la fel, …, astfel că sunt 2222=2322 * 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 00, atunci numărul este nenegativ (adică 00 sau mai mare), pe când dacă este 11, atunci numărul este negativ (mai mic sau egal cu 1-1). Prin urmare, int reține 2312^{31} numere negative (de la 231-2^{31} la 1-1) și 2312^{31} nenegative (de la 00 la 23112^{31} - 1).

Tipul unsigned int, sau doar unsigned, pe de altă parte, nu are un bit de semn, astfel că cei 3232 de biți sunt folosiți pentru a reprezenta doar numere pozitive. Prin urmare, tipul unsigned int reține numere de la 00 la 23212^{32} - 1.

Ce valori pot reține tipurile unsigned

Tipul unsigned int

Tipul unsigned int (sau doar unsigned) reține numere de la 00 la 23212^{32} - 1, adică de la 00 la 4.294.967.2954.294.967.295.

Tipul unsigned short sau unsigned short int

Tipul unsigned short reține numere de la 00 la 21612^{16} - 1, adică de la 00 la 65.53565.535.

Tipul unsigned long long

Tipul unsigned long long reține numere de la 00 la 26412^{64} - 1, adică de la 00 la 18.446.744.073.709.551.61518.446.744.073.709.551.615.

Tipul unsigned char

Tipul unsigned char reține valori de la 00 la 255255.

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

Autentifică-te pentru a putea comenta.

Autentifică-te