Huvudskillnad: Signerad char och unsigned char är två datatyper som används i C-programmering. Både unsigned och signed char används för att lagra tecken och bestå av ett område på 8 bitar. Otecknade tecken har värden mellan 0 och 255, medan signerade tecken har värden från -128 till 127 (på en maskin med 8 bitbyte och två komplementräknik).
C90 aktiverade C för att använda nyckelord signerade och unsigned med char. Det är viktigt att notera att de bara används när små heltal värden ska hanteras. Signerad char och unsigned char är båda 8 bit bytes på en 16 bitars maskin. De skiljer sig huvudsakligen i det intervall som representeras av dem. Räckvidden av osignerad karaktär är 0 till 255, medan storleken på karaktären eller signerad karaktär är -128 till 127.
Omvandlingen av char till int-värden görs automatiskt av C. Men det är fortfarande beroende av maskinen som bestämmer att resultatet skulle vara negativt eller inte. Övrigt A motsvarar heltalet 65.
Villkoren osignerade och signerade används med char betyder att om innehållet i dessa åtta bitar tolkas till ett heltal så kan dessa termer göra viss skillnad. Teckendatatyp är vanligtvis av typen utan tecken som standard. Men i C ++ och ANSI C-läget finns det ett alternativ att uttryckligen deklarera dem som signerad eller osignerad karaktär. I osignerad char används 8 bitar som databitar, medan i minnesrepresentation av signerad char 1 bit (mest signifikant bit) används för signerad bit och 7 bitar används som databitar. Om den signerade biten är 0 betyder det att numret är positivt. Om signerad bit är 1 är numret negativt.
Jämförelse mellan Signerad Char och Unsigned Char:
Signerad Char | Unsigned Char | |
Räckvidd | -128 till +127 | 0 till 255 |
Typisk bitbredd | 1 byte | 1 byte |
Exempel (x = 10000010) | Signerad char x = -2 | Osignerad char = 82 |
Representation | 1 bit = signerad bit 7 bitar = databitar | 8 bit = databitar |
Deklaration | Signerad char b | Oignerad char a |