Pregunta

¿El unsigned palabra clave predeterminada para un tipo específico de datos en C++?Estoy tratando de escribir una función de una clase para el prototipo:

unsigned Rotate(unsigned object, int count)

Pero yo realmente no se lo que unsigned significa.No debería ser como unsigned int o algo?

¿Fue útil?

Solución

Desde el enlace arriba:

  

Varios de estos tipos se pueden modificar utilizando las palabras clave firmados, sin firmar, corta y larga. Cuando uno de estos modificadores tipo se utiliza por sí mismo, un tipo de datos de int se asume

Esto significa que se puede asumir que el autor está usando enteros.

Otros consejos

Los tipos enteros:

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

Tenga cuidado de carbón:

char  (is signed or unsigned depending on the implmentation)
signed char
unsigned char
  

¿La palabra clave default sin firmar a un tipo de datos en C ++

Sí, con y sin signo también se pueden usar como especificadores de tipo independiente

Los tipos de datos enteros char, corta, larga y int puede ser o bien con o sin signo en función de la gama de números necesarios para ser representados. tipos firmados pueden representar ambos valores positivos y negativos, mientras que los tipos sin signo sólo pueden representar valores positivos (y cero).

Un entero sin signo que contiene n bits puede tener un valor entre 0 y 2 n - 1 (Que es 2 n valores diferentes).

Sin embargo, con y sin signo también se puede utilizar como especificadores de tipo autónomo, es decir, el mismo que int firmado y unsigned int respectivamente. Los siguientes dos declaraciones son equivalentes:

unsigned NextYear;
unsigned int NextYear;

Se puede leer sobre la palabra clave sin firmar en el C ++ de referencia.

Hay dos tipos diferentes en esta materia, suscritos y firmados por las Naciones Unidas. El valor predeterminado para los números enteros se firmó lo que significa que pueden tener valores negativos.

En un sistema de 32 bits es un número entero de 32 bits que significa que puede contener un valor de ~ 4 mil millones.

Y cuando se firmó, esto significa que hay que dividirlo, dejando -2000000000 a 2000000000.

Cuando se está sin firmar sin embargo, el valor de no pueden contener números negativos, por lo que para los enteros esto a media 0 de +4 mil millones.

Hay un poco más cerca del presente informationa en Wikipedia .

Sí, significa unsigned int.Solía ser que si no especificar un tipo de datos en C hay muchos lugares donde se acaba de asumir int.Este era tratar, por ejemplo, de tipos de devolución de función.

Esta verruga en su mayoría ha sido erradicada, pero se está encontrando sus últimos vestigios aquí.En mi humilde opinión, el código debe ser fijado a decir unsigned int para evitar el tipo de confusión que están experimentando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top