Nøgleforskel: Signeret char og usigneret char er to datatyper, der anvendes i C programmering. Både usigneret og signeret char bruges til at gemme tegn og bestå af et område på 8 bit. Unsigned characters har værdier mellem 0 og 255, mens signerede tegn har værdier fra -128 til 127 (på en maskine med 8 bit bytes og tos komplementarithetik).
C90 aktiveret C for at bruge søgeord signeret og usigneret med char. Det er vigtigt at bemærke, at de kun bruges, når små heltal værdier skal håndteres. Signeret char og usigneret char er begge 8 bit bytes på en 16 bit maskine. De er primært forskellige i den rækkevidde, de repræsenterer. Udvalget af usigneret char er 0 til 255, mens størrelsen på char eller signeret char er -128 til 127.
Omdannelsen af char i int-værdier foretages automatisk af C. Det er dog stadig afhængig af maskinen, som bestemmer, at resultatet ville være negativt eller ej. Den store bogstaver A svarer til heltalsværdien på 65.
Vilkårene usignerede og underskrevne bruges med char betyder, at hvis indholdet af disse otte bits fortolkes i et helt tal, kan disse udtryk gøre en vis forskel. Tegndatatype er normalt af typen usigneret som standard. Men i C ++ og ANSI C-tilstand er der mulighed for at udtrykkeligt erklære dem som signeret eller usigneret char. I usigneret char anvendes 8 bit som databit, mens der i hukommelsesrepræsentation af signeret char 1 bit (mest signifikant bit) anvendes til signeret bit og 7 bit anvendes som databit. Hvis den signerede bit er 0 betyder det at nummeret er positivt. Hvis signeret bit er 1, er tallet negativt.
Sammenligning mellem Signeret Char og Unsigned Char:
Signeret Char | Unsigned Char | |
Rækkevidde | -128 til +127 | 0 til 255 |
Typisk bitbredde | 1 byte | 1 byte |
Eksempel (x = 10000010) | Signeret char x = -2 | Ubemærket char = 82 |
Repræsentation | 1 bit = signeret bit 7 bit = databit | 8 bit = databit |
Erklæring | Signeret char b | Unsigned char a |