Red de conocimiento informático - Problemas con los teléfonos móviles - unsigned int b=65535;printf("%d",b);

unsigned int b=65535;printf("%d",b);

De hecho, el tipo largo es de 4 bytes, el corto es de 2 bytes y el byte es de 1 byte.

Pero int tiene una longitud variable, 16 bits (2 bytes) en una máquina de 16 bits, 32 bits (4 bytes) en una máquina de 32 bits y 64 bits (8 bytes) en una de 64 bits. -máquina de bits. Muchas escuelas todavía usan libros de texto muy antiguos que dicen que int ocupa 2 bytes.

Creo que el autor puede pensar que int tiene 2 bytes y que los 16 bits de 1 son 65535. Agregar un entero sin signo a un entero sin signo no está claro cuál es el resultado de salida. De hecho, cuando lo ejecute, encontrará que el resultado de salida es 65535, independientemente de si agrega sin firmar o no. Si se reemplaza por

short b=65535;

generará -1

y unsigned short b=65535 generará 65535;