Como en este código:¿Qué significa cuando los números terminan con U
int nx = (int)((rev3[gx])/193U);
¿Cuál es la U en la final de 193?
Como en este código:¿Qué significa cuando los números terminan con U
int nx = (int)((rev3[gx])/193U);
¿Cuál es la U en la final de 193?
El u
es unsigned
, es decir: 1
es el valor int
1, y 1u
es el unsigned int
valor 1.
Esto significa que es una constante de unsigned int
. Es una forma de decirle al compilador que use un tipo específico para una constante donde de otro modo no conocería el tipo. Un 193 desnudo sería tratado como un int
normalmente.
Es similar al sufijo L
para , ULL
para unsigned long long
y así sucesivamente.
U significa unsigned.
un vistazo aquí para obtener más: http://cplus.about.com/od/learnc/ss/variables_6.htm
Esto significa que el número es un unsigned int
, que es un tipo de datos al igual que un int
excepto que no tiene valores negativos, lo cual es una solución de compromiso que hace para que pueda almacenar valores más grandes (dos veces más grandes que un int
normal).
que significa tratar el valor como un valor sin signo
Y el efecto de que en este caso es que si 'rev3 [gx]' es un int, y por lo tanto podría ser negativo, que se convertirá en 'unsigned' antes de ser dividido por 193. En mi máquina' (int) (- 1/193) 'es 0, mientras que' (int) (- 1/193U) 'es 22253716. Pero si' rev3 [gx] 'es un entero con signo tipo * más grande * que int, entonces la U no hace diferencia en el resultado: '(-1LL/193U) == (-1LL/193)', ambos son de tipo largo. Tengo que amarlos reglas enteras de promoción. –