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?

Était-ce utile?

La solution

De la ci-dessus:

  

Plusieurs de ces types peuvent être modifiés en utilisant les mots-clés signés, non signé, à court et à long. Lorsque l'un de ces modificateurs de type est utilisé par lui-même, on suppose un type de données int

Cela signifie que vous pouvez supposer l'auteur utilise ints.

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top