Ključna razlika: Potpisani znak i nepotpisani znak dva su tipa podataka koji se koriste u C programiranju. I nepotpisani i potpisani znak koriste se za pohranu znakova i sastoje se od područja od 8 bitova. Nespisani znakovi imaju vrijednosti između 0 i 255, dok potpisani znakovi imaju vrijednosti od –128 do 127 (na stroju s 8 bitnim bajtovima i dvjema komplementarnom aritmetikom).
C90 je omogućio C da koristi ključne riječi potpisane i nepotpisane s znakom. Važno je napomenuti da se oni koriste samo kada se trebaju obraditi male cjelobrojne vrijednosti. Potpisani char i nepotpisani znak su oba 8-bitna bajta na 16-bitnom računalu. Oni se prvenstveno razlikuju u opsegu koji predstavljaju. Raspon nepotpisanog znaka je 0 do 255, dok je veličina znaka ili potpisanog znaka -128 do 127.
Transformacija char u int vrijednosti vrši se automatski C. Međutim, ona još uvijek ovisi o stroju koji odlučuje da će rezultat biti negativan ili ne. Gornji slučaj A jednak je cijeloj vrijednosti od 65.
Pojmovi nepotpisani i potpisani korišteni s znakom znači da ako se sadržaj tih osam bitova interpretira u cijeli broj, onda ti izrazi mogu napraviti neku razliku. Tip podataka znakova obično je tipa nepotpisan prema zadanim postavkama. Međutim, u C + + i ANSI C načinu, postoji mogućnost da ih izričito deklarirate kao potpisane ili nepotpisane. U nepotpisanim char 8 bita se koriste kao podatkovni bitovi, dok se u memoriji za potpisani bit koristi reprezentacija potpisanog char 1 bita (najznačajniji bit), a 7 bitova se koriste kao podatkovni bitovi. Ako je potpisani bit 0, to znači da je broj pozitivan. Ako je potpisani bit 1, broj je negativan.
Usporedba između potpisanog i nepotpisanog znaka:
Potpisana Char | Nepotpisani Char | |
opseg | -128 do +127 | 0 do 255 |
Tipična širina bita | 1 bajt | 1 bajt |
Primjer (x = 10000010) | Signed char x = -2 | Nepotpisani char = 82 |
prikaz | 1 bit = potpisan bit 7 bitnih = bitova podataka | 8 bitnih = bitova podataka |
Deklaracija | Potpisani znak b | Nepotpisani znak a |