Sådan bruges Negative Tal i C

September 18

Sådan bruges Negative Tal i C


Den måde computere håndtere negative tal er anderledes end den måde, mennesker gør. Der er ingen minus i binær og så et system benævnt tos komplement bruges. I dette system er den plads, der anvendes til at lagre et antal opdelt i to, halvdelen af ​​de positive tal og halvdelen til den negative. Den største 32-bit heltal er 4294967295. Når man har med positive og negative tal, kendt som signerede numre, den største 32-bit positivt tal er 2,147,483,647 og det største negative tal er -2147483648. Da disse er grænserne for 32-bit tal er der et mærkeligt fænomen, hvor tilsætte 1 til 2,147,483,647 resultater i -2147483648. En simpel Visual C ++ projekt viser dette.

Instruktioner

1 Klik på ikonet Windows "Start", vælg "Alle programmer" og derefter "Microsoft Visual Studio 2010 Express." Klik på "Microsoft Visual C ++ 2010 Express."

2 Klik på menuen "Filer" og navigere til "Ny". Klik på "Project" for at åbne den nye dialog-projektet.

3 Klik på "Win32" i den installerede skabeloner trævisningen i venstre side af dialogboksen. Klik på "Win32 Console Application." Indtast et navn til projektet (fx "negativenumbers") i "Navn:" feltet mod bunden af ​​dialogen. Klik på "OK" for at åbne "Win32 Application Wizard" dialogboksen. Klik på "Udfør". Selv om dette er en C ++ projekt, koden i det næste trin er ren C.

4 Udskift standard kode, der vises i editoren med følgende kode:

omfatte "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);

returnere 0;

}

5 Tryk på "F7" eller klik på menuen "Debug", derefter "Build Solution" til at kompilere programmet og vise resultatet i Output-vinduet mod bunden af ​​Visual C ++:

========== Build: 1 lykkedes, 0 mislykkedes, 0 up-to-date, 0 sprunget ==========

Hvis resultatet er "0 lykkedes" og derefter en række fiaskoer, kontrollere den kode, du har indtastet, og sikre, at det er identisk med koden i trin 4.

6 Tryk på "Ctrl + F5" for at køre programmet.

TIPS

  • I C, en "int" og en "unsigned int" optager den samme plads i hukommelsen og den faktiske værdi afhænger af, hvordan den fortolkes. Ændring af "% d" til "% u" i nogen af ​​de underskrevne heltal "printf" udsagn i programmet vil fortolke den underskrevne heltal som en usigneret heltal, når der udskrives til konsollen.

relaterede artikler