Tärkein ero: Allekirjoitettu char ja unsigned char ovat kaksi C-ohjelmoinnissa käytettyä tietotyyppiä. Sekä allekirjoitettua että allekirjoitettua charia käytetään merkkien tallentamiseen ja ne koostuvat 8-bittisestä alueesta. Allekirjoittamattomilla merkeillä on arvot välillä 0 - 255, kun taas allekirjoitetuilla merkeillä on arvoja -128 - 127 (koneessa, jossa on 8-bittiset tavut ja kahden komplementti-aritmeettinen).
C90 mahdollistaa C: n käyttämään allekirjoitettuja ja allekirjoittamattomia avainsanoja. On tärkeää huomata, että niitä käytetään vain, kun käsitellään pieniä kokonaislukuja. Allekirjoitettu char ja unsigned char ovat molemmat 8-bittisiä tavuja 16-bittisessä koneessa. Ne eroavat toisistaan pääasiassa niiden mukaan. Allekirjoittamattoman char-alueen alue on 0 - 255, kun taas merkin tai allekirjoitetun charin koko on -128-127.
C: n muutos int-arvoksi tapahtuu automaattisesti C. Kuitenkin se on edelleen riippuvainen koneesta, joka päättää, että tulos olisi negatiivinen tai ei. Ylempi kotelo A vastaa kokonaislukuarvoa 65.
Merkillä merkityt ja allekirjoitetut termit merkitsevät sitä, että jos näiden kahdeksan bitin sisältö tulkitaan kokonaisluvuksi, nämä termit voivat tehdä jonkin verran eroa. Merkkidatatyyppi on tyypillisesti oletusarvon mukaan allekirjoittamaton. C ++- ja ANSI C -tiloissa on kuitenkin mahdollisuus ilmoittaa ne nimenomaisesti allekirjoitetuksi tai allekirjoittamattomaksi. Allekirjoittamattomassa char 8: ssa käytetään bitteinä bittejä, kun taas allekirjoitetun char 1: n muistissa käytetään bittiä (merkittävin bitti) allekirjoitetulle bitille ja 7 bittiä käytetään databitteinä. Jos allekirjoitettu bitti on 0, se tarkoittaa, että luku on positiivinen. Jos allekirjoitettu bitti on 1, numero on negatiivinen.
Allekirjoitetun Charin ja Unsigned Charin vertailu:
Allekirjoitettu Char | Unsigned Char | |
alue | -128 - +127 | 0 - 255 |
Tyypillinen bittileveys | 1 tavu | 1 tavu |
Esimerkki (x = 10000010) | Allekirjoitettu char x = -2 | Unsigned char = 82 |
edustus | 1 bitti = allekirjoitettu bitti 7 bittiä = databittejä | 8 bitti = databitit |
ilmoitus | Allekirjoitettu char b | Allekirjoittamaton char a |