Tecnología

Inicio

Cómo utilizar números negativos en C

Cómo utilizar números negativos en C


Las computadoras forma en que tratan los números negativos es diferente de la manera lo hacen los humanos. No hay ningún signo menos en binario y por lo tanto un sistema conocido como complemento a dos se utiliza. En este sistema, el espacio utilizado para almacenar un número se divide en dos, un medio para los números positivos y un medio para la negativa. El mayor número entero de 32 bits es 4294967295. Cuando se trata de números positivos y negativos, conocidos como números con signo, el mayor número positivo de 32 bits es 2147483647 y el número negativo más grande es -2,147,483,648. Dado que estos son los límites de números de 32 bits no es un fenómeno extraño donde la adición de 1 a 2147483647 resultados en -2,147,483,648. Un simple proyecto de Visual C ++ lo demuestra.

Instrucciones

1 Haga clic en el icono de Windows "Inicio", seleccione "Todos los programas", luego "Microsoft Visual Studio 2010 Express." Haga clic en "Microsoft Visual C ++ 2010 Express."

2 Haga clic en el menú "Archivo" y vaya a "Nuevo". Haga clic en "Proyecto" para abrir el cuadro de diálogo nuevo proyecto.

3 Haga clic en "Win32" en la vista de árbol de las plantillas instalado en el lado izquierdo del cuadro de diálogo. Haga clic en "Aplicación de consola Win32." Introduzca un nombre para el proyecto (por ejemplo, "negativenumbers") en el campo "Nombre:" el campo hacia la parte inferior del cuadro de diálogo. Haga clic en "Aceptar" para abrir el cuadro de diálogo "Asistente para aplicaciones Win32". Haga clic en "Finalizar". Aunque este es un proyecto de C ++, el código en el siguiente paso es puro C.

4 Reemplace el código predeterminado que aparece en el editor con el siguiente código:

incluye "stdafx.h"

int main (int argc, char * argv [])

{

unsigned int ui = 0;

int i = 0;

ui ui = - 1; / * 0 - 1 = 4294967295 * /

i = i - 1; / * 0 -1 = -1 * /

printf ( "unsigned int:% u \ n", ui);

printf ( "int:% d \ n", i);

ui = 2147483647;

i = 2147483647;

ui ui = + 1; / * 2147483647 + 1 = 2147483648 * /

i = i + 1; / * 2147483647 + 1 = -2147483648 * /

printf ( "unsigned int:% u \ n", ui);

printf ( "int:% d \ n", i);

return 0;

}

5 Pulse la tecla "F7" o haga clic en el menú "Test", luego "Generar solución" para compilar el programa y mostrar el resultado en la ventana de salida hacia la parte inferior de Visual C ++:

========== Build: 1 tuvo éxito, 0 incorrectos, 0 hasta a la fecha, 0 skipped ==========

Si el resultado es "0 tuvieron éxito" y luego una serie de fracasos, marque el código que ha introducido y asegurarse de que es idéntico al código en el paso 4.

6 Pulse la tecla "Ctrl + F5" para ejecutar el programa.

Consejos y advertencias

  • En C, un "int" y un "unsigned int" ocupan el mismo espacio en la memoria y el valor real depende de cómo se interpreta. Cambiar el "% d" a "% u" en cualquiera de las declaraciones firmadas entero "printf" en el programa interpretará el entero con signo como un entero sin signo cuando se imprime en la consola.