Negative Zahlen in C veranschaulicht

January 31

Die Art und Weise Computer Handle negativen Zahlen ist anders als die Art und Weise Menschen tun. Es gibt kein Minus-Zeichen Binär und so ein System bekannt als Zweierkomplement verwendet wird. Nach diesem System gliedert sich des Speicherplatzes, der zum Speichern einer Zahl in zwei, für die positiven Zahlen die Hälfte und die Hälfte für die negativen. Die größte 32-Bit-Ganzzahl ist 4.294.967.295. Beim Umgang mit positiven und negativen Zahlen als Zahlen mit Vorzeichen bekannt, ist die größte positive Zahl der 32-Bit 2.147.483.647 und die größte negative Zahl ist -2.147.483.648. Da dies die Grenzen des 32-Bit-Zahlen sind gibt es ein seltsames Phänomen, bei denen 1 bis 2.147.483.647 hinzufügen -2.147.483.648 ergibt. Ein einfaches Visual C++-Projekt veranschaulicht dies.

Anweisungen

1 Klicken Sie auf das Windows-Symbol "Start", wählen Sie "Alle Programme" und dann "Microsoft Visual Studio 2010 Express." Klicken Sie auf "Microsoft Visual C++ 2010 Express."

2 Klicken Sie im Menü "Datei" und navigieren Sie zu "Neu." Klicken Sie auf "Projekt", um das Dialogfeld Neues Projekt öffnen.

3 Klicken Sie in der Strukturansicht installierte Vorlagen auf der linken Seite des Dialogfelds "Win32". Klicken Sie auf "Win32-Konsolenanwendung." Geben Sie einen Namen für das Projekt (z. B. "Negativenumbers") in der "Name:" Feld im unteren Bereich des Dialogfensters. Klicken Sie auf "OK", um das Dialogfeld "Win32-Anwendungs-Assistent" öffnen. Klicken Sie auf "Fertigstellen". Obwohl dies ein C++-Projekt handelt, ist der Code im nächsten Schritt reine C.

4 Ersetzen Sie den Standardcode, der angezeigt im Editor mit dem folgenden Code wird:

"stdafx.h" enthalten 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 Drücken Sie "F7", oder klicken Sie im Menü "Debug", dann "Projektmappe erstellen" zu kompilieren Sie das Programm und zeigen das Ergebnis im Fenster "Ausgabe" im unteren Bereich von Visual C++:

=== Build: 1 erfolgreich war, 0 schlug, aktuell, 0 0 übersprungen ===

Wenn das Ergebnis "0 gelang es" und dann eine Reihe von Fehlern ist, überprüfen Sie den Code, den Sie eingegeben haben, und stellen Sie sicher, dass es ist identisch mit dem Code in Schritt 4.

6 Drücken Sie "STRG + F5" um das Programm auszuführen.

Tipps & Warnungen

  • In C "Int" und "unsigned Int" belegen den gleichen Platz im Speicher und der tatsächliche Wert hängt davon ab, wie es interpretiert wird. Ändern "%d", "% u" in der "Printf" Ganzzahl-Anweisungen im Programm wird die Ganzzahl als Ganzzahl ohne Vorzeichen interpretieren, beim Drucken auf der Konsole.