Red de conocimientos sobre prescripción popular - Cuidado de la salud en otoño - ¿Cómo distinguir entre enteros sin signo y enteros con signo?

¿Cómo distinguir entre enteros sin signo y enteros con signo?

Los enteros con signo son indistinguibles en la memoria de la computadora, pero están en un programa. Los datos en las computadoras se almacenan en forma de complemento a dos y se representan en binario. Por ejemplo, siempre que se agregue unsigned a la notación de tipo, el tipo sin firmar predeterminado es unsigned e Int está firmado. De hecho, para decirlo sin rodeos, definir un entero con signo puede almacenar números enteros positivos y negativos, y definir un entero sin signo solo puede almacenar números enteros positivos.

Los números en las computadoras se representan en binario. El bit más a la izquierda generalmente se usa para indicar si el número es positivo o negativo, por lo que el número es un entero con signo. Si el bit más a la izquierda no se usa para representar positivo o negativo, pero está conectado con los siguientes bits para representar un número entero, entonces es imposible distinguir si el número es positivo o negativo, solo puede ser un número positivo y un entero sin signo. .

Los enteros en las computadoras se dividen en dos categorías: enteros sin signo

Enteros, también conocidos como enteros sin signo), dichos enteros deben ser enteros positivos con signo (con signo

<); p>Integer), que puede representar números enteros positivos y negativos.

Los enteros sin signo se utilizan a menudo para representar números enteros positivos, como direcciones e índices. Pueden ser de 8 bits, 16 bits, 32 bits, 64 bits o incluso más. Ocho enteros positivos binarios que van de 0 a 255 (

-1), enteros positivos de 16 bits que van de 0 a 65535 (

-1), el rango de valores enteros positivos representado por 32 bits binarios son 0~

-1.

La diferencia entre firmado y sin firmar:

Int está firmado, unsigned está sin firmar.

En realidad ocupan el mismo número de bytes, pero el firmado necesita organizar un lugar para representar el signo del valor, de modo que pueda representar la mitad del valor absoluto que el sin firmar. Por ejemplo, si tenemos un entero de 1[1] byte (aunque este tipo no existe), entonces el sin signo es así: 0000000 ~ 1111165438.

Este es un rango sin firmar.

Un byte tiene 8 bits.

Para números con signo, debido a que el primer bit se usa para representar el símbolo, solo se pueden usar siete bits para representar el número 0000000 ~ 1111111. Como está firmado, también puede representar el rango: -65438.

111

~

1111

111.