Diferența cheie: caracterele semnate și caracterele nesemnate sunt două tipuri de date utilizate în programarea C. Ambele caractere nesemnate și semnate sunt utilizate pentru stocarea caracterelor și constau dintr-o zonă de 8 biți. Caracterele nesemnate au valori cuprinse între 0 și 255, în timp ce caracterele semnate au valori de la -128 la 127 (pe o mașină cu octeți de 8 biți și aritmetică complementară a doi).
C90 a activat funcția C pentru a utiliza cuvinte cheie semnate și nesemnate cu caractere. Este important să rețineți că acestea sunt utilizate numai atunci când valorile mici întregi trebuie să fie manipulate. Caracterele semnate și caracterele nesemnate sunt ambele octeți de 8 biți pe o mașină de 16 biți. Ele diferă în principal în domeniul reprezentat de ei. Gama de caractere nesemnate este de la 0 la 255, în timp ce dimensiunea caracterelor char sau semnate este de -128 la 127.
Transformarea caracterelor în valori int se face automat prin C. Totuși, aceasta este încă dependentă de mașina care decide că rezultatul ar fi negativ sau nu. Caseta A superioară este echivalentă cu valoarea întreagă de 65.
Termenii nesignificați și semnați folosiți cu char înseamnă că, dacă conținutul acestor opt biți este interpretat într-un întreg, atunci acești termeni pot avea o anumită diferență. Tipul de tip de caractere este de obicei de tip unsigned în mod implicit. Cu toate acestea, în modul C ++ și ANSI C, există o opțiune de a le declara în mod explicit drept caractere semnate sau nesemnate. În caracterele nesemnate 8 biți sunt utilizați ca biți de date, în timp ce în reprezentarea de memorie a caracterelor semnate 1 biți (cel mai semnificativ bit) este utilizat pentru bitul semnat și 7 biți sunt utilizați ca biți de date. Dacă bitul semnat este 0, înseamnă că numărul este pozitiv. Dacă bitul semnat este 1, atunci numărul este negativ.
Comparație între caracterele semnate și caracterele nesemnate:
Semnat Char | Caracterele nesemnate | |
Gamă | -128 la +127 | 0 până la 255 |
Lățimea de biți tipică | 1 octet | 1 octet |
Exemplu (x = 10000010) | Caracter semnat x = -2 | Caracterul nesemnat = 82 |
Reprezentare | 1 bit = bit semnat 7 biți = biți de date | 8 biți = biți de date |
Declaraţie | Caracterele semnate b | Caracterele nesignificate |