¿Cuántos enteros sin signo hay uint?
uint8 es un tipo entero sin signo de 8 bits y uint16 es un tipo entero sin signo de 16 bits.
Los enteros tienen dos tipos: sin signo y con signo. De forma predeterminada, las variables enteras declaradas son tipos con signo (char es un poco especial. Si necesita declarar unsigned Para tipos simbólicos, debe agregar unsigned antes). el tipo. Cuando es imposible tomar un valor negativo, se puede definir como sin firmar. En algunos datos de programación integrados subyacentes, generalmente no está firmado.
Información ampliada:
Conversión de entero con signo y entero sin signo cuando son números negativos
Al realizar una operación (como agt aquí; b), si uno de sus operandos están firmados y el otro no está firmado, entonces el lenguaje C forzará implícitamente el argumento firmado a un número sin signo, suponiendo que ambos números no sean negativos, para realizar esta operación.
Los números enteros suelen existir en forma de complemento en las computadoras, y el complemento de -1 (almacenado en 4 bytes) es 1111, 1111, 1111, 1111. Para la mayoría de las implementaciones del lenguaje C, la regla general para convertir entre números con y sin signo de la misma longitud de palabra es: el valor puede cambiar, pero el patrón de bits no.
En otras palabras, al convertir un int sin signo en un int, o al convertir un int en un int sin signo, la representación de bits subyacente permanece sin cambios. En otras palabras, incluso después de convertir -1 a unsigned int, su representación en la memoria no ha cambiado, es decir, 1111, 1111, 1111, 1111.
La misma representación de almacenamiento puede corresponder a diferentes datos para la aplicación. Por ejemplo, 1111, 1111, 1111, 1111 representa -1 para números con signo, pero para números sin signo, representa UMax (porque no existe). bit de signo, al igual que el complemento de un número positivo es él mismo, y el bit más alto no representa el bit de signo), pero su almacenamiento subyacente es el mismo.
Enciclopedia Baidu: entero sin signo