¿Cómo se representa el número negativo en un entero con signo de 32 bits? ¿Es complemento de dos o uno? o el último bit a la izquierda es como una bandera? Por ejemplo: (-10)¿Cómo se representan los números negativos en un entero con signo de 32 bits?
Respuesta
La mayoría de las computadoras actualmente usan two's complement para enteros con signo, pero puede variar según la arquitectura del hardware, el lenguaje de programación u otros problemas específicos de la plataforma.
Para una representación en complemento a dos, la ("más a la izquierda") bit más significativo se refiere como el bit de signo , y se establecerá para un entero negativo y claro para un número entero no negativo. Sin embargo, es más que solo una "bandera". Consulte el Wikipedia article para obtener más información.
¿Entonces el bit frontal será 1 para negativo y 0 para positivo? ¿Qué hay de 0? – User
Cero se representa por todos los bits siendo cero. –
Normalmente es un complemento a dos.
0xFFFFFFFF = -1
0xFFFFFFFE = -2
0xFFFFFFFD = -3
...
& etc.
El bit más significativo (el último bit de la izquierda) se establece para los números negativos.
¿Te refieres a "primer bit a la izquierda"? –
¿Qué tal "primer bit DESDE la izquierda" o "Último bit DESDE la derecha"? :) –
de la norma C99:
Para los tipos de enteros con signo, los bits de la representación de objeto será divididos en tres grupos: los bits de valor, bits de relleno, y el bit de signo. No es necesario que haya bits de relleno; allí será exactamente un bit de signo. Cada bits que es un poco valor tendrá el mismo valor que el mismo bit en la representación objeto de la tipo sin signo correspondiente (si hay son bits de valor M en el tipo firmado y N en el tipo sin signo, a continuación, M = N). Si el bit de signo es cero, deberá no afectar el valor resultante. Si el bit de signo es uno, el valor se modificado en una de las siguientes maneras:
- el valor correspondiente con el signo es negado bit 0 (signo y magnitud);
- el bit de signo tiene el valor - (2N) (complemento a dos);
- el bit de signo tiene el valor - (2N - 1) (complemento de uno).
Cuál de estos se aplica es definido por la implementación, como es si el valor con bit de signo 1 y todos los bits de valor cero (para los dos primeros), o con bit de signo y todo valor bits 1 (por el complemento de unos), es una representación trap o un valor normal. En el caso de signo y magnitud y complemento de , si esta representación es un valor normal, es llamado cero negativo.
Creo que la respuesta es 0110
, precedido de 1 repetido 28 veces, por lo tanto, que parece:
1111 1111 1111 1111 1111 1111 1111 0110;
Pasos:
representación de bits de 10 es:
0000 0000 0000 0000 0000 0000 0000 1010;
0->1
y1->0
para todos los bits:1111 1111 1111 1111 1111 1111 1111 0101;
Añadir 1 a la última parte, y propagar al poco por delante, hecho!
1111 1111 1111 1111 1111 1111 1111 0110;
===
Usted puede verificar mediante la adición con 10, y obtendrá 0 para todos los bits. Como se mencionó anteriormente, está basado en 2 y sigue el complemento de dos.
- 1. Bits representación de números negativos
- 2. Encontrar posiciones de bits en un entero de 32 bits sin signo
- 3. Asignar un flotador de 32 bits a un entero de 32 bits
- 4. ¿Cómo declaro un entero de 32 bits en Java?
- 5. C++: ¿Es seguro comparar un número entero de 64 bits con un número entero de 32 bits?
- 6. Números sin signo versus números con signo
- 7. Agregar números de 64 bits con aritmética de 32 bits
- 8. ¿Cómo se comporta Verilog con números negativos?
- 9. 64 bits por división de 32 bits
- 10. ¿Cómo simulo una rotación a nivel de bits de un entero de 64 bits (sin signo) en JavaScript?
- 11. Cómo convertir un entero de 32 bits de unsigned a firmado en MySQL o PHP?
- 12. Conversión de entero de 32 bits a 4 caracteres
- 13. ¿Es un int. Java siempre 32 bits?
- 14. enteros de 32 bits sin signo en Javascript
- 15. conversión de entero de 32 bits sin signo (big endian) a largo y volver
- 16. Entero con signo Little-Endian
- 17. mysql previene los números negativos
- 18. ¿Cómo convierto una cadena hexadecimal en un entero con signo?
- 19. ¿Qué representan los números de Planning Poker?
- 20. sustracción de puntero de 64 bits, underflow entero con signo y un posible error de compilación?
- 21. ¿Cómo se almacenan los enteros de 64 bits sin signo en SQL Server?
- 22. ¿Qué sucede cuando resta un entero sin signo de un entero con signo en C++?
- 23. Conversión de números hexadecimales en cadenas a números negativos, en Perl
- 24. ¿Qué tan grande puede ser un entero de 64 bits con signo?
- 25. trabajando con números negativos en python
- 26. encasillamiento Implícito en C (conversión de 32 bits sin signo de 8 bits a T int)
- 27. División de 64/32 bits en un procesador con división de 32/16 bits
- 28. ¿Cómo detectar números negativos como errores de análisis al leer enteros sin signo?
- 29. Java aleatoria dando números negativos
- 30. Resultados extraños de la aritmética de módulo con números negativos y denominadores sin signo
¿En qué contexto? Diferentes sistemas/plataformas harán las cosas de manera diferente. –
¿Te refieres a "primer bit a la izquierda"? –