2009-09-29 11 views

Respuesta

30

El formato %d es un entero con signo (decimal). Los enteros se almacenan usando two's complement, lo que significa que el bit de orden superior (8000 0000) indica, por así decirlo, el signo del valor.

una cuenta atrás de 3, los valores son:

0000 0003 = 3 
0000 0002 = 2 
0000 0001 = 1 
0000 0000 = 0 
FFFF FFFF = -1 
FFFF FFFE = -2 

etc.

Si desea FFFF FFFF para que aparezca como un número positivo grande, utilice el formato %u (sin firmar).

+0

oh, ¿cuál es el% por mucho tiempo? o sin firmar? – user105033

+0

% u - simplemente agregado a la respuesta :) –

+3

int es% d, unsigned es% u, long int es% ld, long unsigned es% lu –

4

Los valores que mencionas son la representación de complemento a dos de -1 y -2

Busque two's complement

3

El primer bit en un entero con signo es el signo, por lo que el número más alto que se puede almacenar es 0xEFFFFFFF.

Cuestiones relacionadas