Bestemme typer tall i C

January 2  by Eliza

En av de frustrerende aspektene av programmeringsspråket C er C numerisk datatype Puzzle. I motsetning til i det virkelige liv, hvor du kan bare trekke en rekke ut av eteren og være gledesfylt fornøyd med det, i C må du trekke tall fra bestemte deler av etere basert på hvilken type nummer det er. Dette gjør frustrasjonen faktor begynne stigende, med den logiske spørsmålet: "Hva er en nummertype?"

Ok. Det er ikke en "nummertype." Det er en numerisk datatype, som er hvordan du sier, "nummer type" hvis du jobber i Pentagon. Du må fortelle den C-kompilator som type nummer du bruker, fordi de mener om tallene annerledes fra måten mennesker gjør. For eksempel må du vite følgende ting om antall:

  • Vil det være en hel rekke - uten en brøk eller desimaltall del?
  • Hvor stor vil antallet være (som i verdi-store, ikke big-on-the-side-store)?
  • Hvis nummeret har en brøk del, hvor nøyaktig må antallet være? (Som til tusen, million eller gazillionths desimal. Forskere må vite slik presisjon når de sender raketter til verdensrommet for å gå der ingen har gått før.)

Ja, dette er alt fremmed for deg. Hva de fleste programmerere ønsker å gjøre er å si: "Jeg trenger et nummer variabel - bare gi meg ett, rask - før denne verdien glipper ut baksiden av datamaskinen og blir en regjering statistikk" Men du må tenke litt mer før du gjør det.

C bruker en rekke nummertyper - ulike numeriske datatyper, så å si. Tabell 1 viser dem alle, sammen med andre statistiske opplysninger. Denne tabellen er noe du vil referere til nå og igjen fordi bare den helt sinnsyk ville huske det hele tatt.

Tabell 1: C Numerisk datatyper


Søkeord


Variabel Type


Range


Lagring Nødvendig


røye


tegn (eller streng)


-128 Til 127


1 byte


int


heltall


-32 768 til 32 767


2 bytes


kort (eller kort int)


kort heltall


-32 768 til 32 767


2 bytes


lenge


lang heltall


-2147483648 Til 2147483647


4 byte


unsigned char


usignert karakter


0 til 255


1 byte


unsigned int


usignert heltall


0 til 65535


2 bytes


usignert kort


usignert kort heltall


0 til 65535


2 bytes


usignert lang


usignert lang heltall


0 til 4294967295


4 byte


float


single-presisjon flyttall (nøyaktig til 7 siffer)


+ Eller -3,4 x 10 38 til + eller -3,4 x10 -38


4 byte


dobbel


dobbel presisjon flyttall (nøyaktig til 15 sifre)


+ Eller -1,7 x 10 -308 til + eller -1,7 x10 308


8 byte

  • Nøkkelordet er C-språk nøkkelord som brukes til å deklarere variabelen type.
  • Variabeltype forteller deg hvilken type variabel nøkkelordet definerer. For eksempel definerer røye et tegn (eller streng) variabel, int gjør heltall; og så videre. Det er mange variable former, som hver for seg er avhengig av den type tall eller verdi som beskrives.
  • Utvalget forteller deg hvor stor av en rekke vil passe inn i variabelen type. For eksempel heltall i området fra -32 768 opp til 0 og opp igjen til 32.767. Andre typer variabler håndtere større verdier.
  • Storage Nødvendig -kolonnen forteller deg hvor mange byte med lagringsplass hver variabeltype krever. Dette er avanserte ting, egentlig ikke nødvendig å vite. Noen dataforskere kan se på byte som kreves og forkynne, "Goodness! Et heltall på en PC opptar 16 biter av lagring. Det må forklare 32K rekkevidde. Faktisk. Hmmm. Pass nachos."

Hvorfor bruke heltall?

Selvfølgelig, hvis du har en dobbel presisjon flyttall som kan håndtere, i hovedsak, tallene opp til en gazillion, hvorfor bry seg med ynkelig lite heltall? Pokker, gjør alt en dobbel-whammy flyttall og bli ferdig med det! Høres bra ut. Er dårlig.

Heltall er virkelig de mest vanlige og praktiske typer numeriske variabler. Ofte trenger du bare små, hel-tallverdier når du programmerer. Flyttall er greit, men de krever mer overhead fra datamaskinen og ta lengre tid å jobbe med. Til sammenligning heltall er langt raskere.

Du må bekymre deg med bare to typer heltall: normal heltall - INT - og den lange heltall - den lenge.

Den int er et hel-tallverdi, som strekker seg fra -32 768 til 32.767. Det er ideelt tatt i bruk for små tall uten en brøk del. I noen versjoner av C, kan du se denne verdien referert til som en kort eller kort int. I alle DOS C kompilatorer, det er bare kalt int. (Det rimer med bøyd, ikke halvliter.)

Den lange er et hel-tallverdi, alt fra -2147483648 til 2147483647 - et stort utvalg, men ikke stor nok til å omfatte den nasjonale gjelden eller Madonnas ego. Denne typen numerisk variabel er referert til som en lang, eller lang int i noen versjoner av C. Med DOS C kompilatorer, kan du fritt hakke om, og kaller det akkurat lenge.

I videreføring med menneskehetens besettelse med størrelse, vil det synes opplagt - nei, grådig - å alltid ønsker å bruke lang over int. Tross alt, er større bedre. Selv om det kan være sant, og psykologer kan debattere hvorfor folk flest føler det slik, er sannheten at jo mindre variable typen du kan komme unna med, kjører raskere programmet. INT variablene er liten og ryddig, lett for datamaskinen å finne på sine to tomler. Lange variabler krever litt mer tid til å beregne, og det er bortkastet minne og prosessorkraft på datamaskinen for å bruke dem når du er bedre med int s . (Du vil se hvorfor det er slik som du fortsetter å programmere i C)

  • Du bruker int og lange søkeord for å erklære heltallsvariabler int er for mindre verdier;. Lenge er for større verdier.
  • Den% i plassholder brukes i printf funksjonen for å vise int variabler. (Du kan også bruke den% d plassholder.)
  • int = kort = kort int
  • Heltallsvariabler (int) er kortere, raskere og enklere for datamaskinen å håndtere. Hvis suppe for en var en variabel, vil det være en int. Bruk int s når du trenger en liten, hel numerisk verdi.
  • Negative tall - hvorfor bry seg? Noen ganger trenger du dem, men mesteparten av tiden du ikke.
  • Trekullet variabel typen kan også brukes som en type heltall, selv om den har et meget lite område. Disse variablene brukes mest til å lagre enkelt tegn (eller strenger).