Différence de clé: les caractères signés et non signés sont deux types de données utilisés en programmation C. Les caractères non signés et signés sont utilisés pour stocker des caractères et se composent d'une zone de 8 bits. Les caractères non signés ont des valeurs comprises entre 0 et 255, tandis que les caractères signés ont des valeurs comprises entre –128 et 127 (sur une machine avec 8 octets et l'arithmétique des complément à deux).
C90 permettait à C d'utiliser des mots-clés signés et non signés avec char. Il est important de noter qu'ils ne sont utilisés que lorsque de petites valeurs entières doivent être gérées. Les caractères signés et non signés sont tous deux des octets de 8 bits sur une machine de 16 bits. Ils diffèrent principalement dans la gamme représentée par eux. La plage de caractères non signés est comprise entre 0 et 255, tandis que la taille d'un caractère ou d'un caractère signé est comprise entre -128 et 127.
La transformation de char en valeurs int se fait automatiquement par C. Toutefois, cela dépend toujours de la machine qui décide que le résultat serait négatif ou non. La lettre majuscule A est équivalente à la valeur entière de 65.
Les termes non signé et signé utilisés avec char signifient que si le contenu de ces huit bits est interprété en un entier, ces termes peuvent faire une différence. Le type de données de caractère est généralement de type non signé par défaut. Cependant, en mode C ++ et ANSI C, il existe une option pour les déclarer explicitement comme caractères signés ou non signés. En caractères non signés, 8 bits sont utilisés comme bits de données, alors que dans la mémoire, les caractères signés sont signés 1 bit (le bit le plus significatif) est utilisé pour le bit signé et 7 bits en tant que bits de données. Si le bit signé est 0, cela signifie que le nombre est positif. Si le bit signé est 1, le nombre est négatif.
Comparaison entre les caractères signés et non signés:
Char signé | Caractère non signé | |
Intervalle | -128 à +127 | 0 à 255 |
Largeur de bit typique | 1 octet | 1 octet |
Exemple (x = 10000010) | Caractère signé x = -2 | Caractère non signé = 82 |
Représentation | 1 bit = bit signé 7 bits = bits de données | 8 bits = bits de données |
Déclaration | Char signé b | Caractère non signé a |