Question
Est-ce que la valeur par défaut de mot-clé non signé à un type de données spécifique en C ++? Je suis en train d'écrire une fonction pour une classe pour le prototype:
unsigned Rotate(unsigned object, int count)
Mais je ne comprends pas vraiment ce que unsigned
moyens. Ça ne devrait pas être comme unsigned int
ou quelque chose?
La solution
Autres conseils
Types Entier:
short -> signed short
signed short
unsigned short
int -> signed int
signed int
unsigned int
signed -> signed int
unsigned -> unsigned int
long -> signed long
signed long
unsigned long
Méfiez-vous des ombles:
char (is signed or unsigned depending on the implmentation)
signed char
unsigned char
Est-ce que la valeur par défaut de mot-clé non signé à un type de données en C ++
Oui, signé et non signé peut également être utilisé comme spécificateurs autonomes
Les types de données entier char, court, long et int peut être signé ou non signé en fonction de la plage de numéros nécessaires pour être représentés. types signés peuvent représenter à la fois des valeurs positives et négatives, alors que les types non signés ne peuvent représenter des valeurs positives (et zéro).
Un entier non signé contenant n bits peut avoir une valeur comprise entre 0 et 2 n - 1 (Qui est 2 n des valeurs différentes).
Cependant, signé et non signé peut également être utilisé comme spécificateurs de type autonome, ce qui signifie le même que celui signé int et unsigned int respectivement. Les deux déclarations suivantes sont équivalentes:
unsigned NextYear;
unsigned int NextYear;
Vous pouvez lire sur le mot-clé non signé dans le C ++ Référence .
Il existe deux types différents en la matière, signés et non signés. La valeur par défaut pour les entiers est signé ce qui signifie qu'ils peuvent avoir des valeurs négatives.
sur un système 32 bits est un nombre entier sur 32 bits ce qui signifie qu'il peut contenir une valeur d'environ 4 milliards.
Et quand il est signé, cela signifie que vous avez besoin de le diviser, laissant -2000000000 à 2000000000.
Quand il est non signé mais la valeur ne peut pas contiennent des nombres négatifs, donc pour les entiers cela signifierait 0-4000000000.
Il y a un peu plus informationa combat ce sur Wikipedia .
Oui, cela signifie unsigned int
. Il fut un temps que si vous ne spécifiez pas un type de données en C, il y avait beaucoup d'endroits où juste int
suppose. Ce fut essayer, par exemple, des types de retour de la fonction.
Cette verrue a surtout été éradiquée, mais vous rencontrez ses derniers vestiges ici. À mon humble avis, le code doit être fixé à dire unsigned int
pour éviter que ce genre de confusion que vous rencontrez.