C keel - 64-bitiste täisarvude käsitlemine

Teil võib tekkida vajadus käsitleda väga suurt arvu C-keeles. Allkirjastamata 32-bitine arv ei tohi ületada teatud väärtust. Suuremate täisarvude käsitlemiseks võib C-programmeerimiskeeles kasutada 64-bitiste täisarvude käsitlemiseks eraldi andmetüüpi. Pikk pikk andmetüüp saab hakkama suurte täisarvudega, võimaldades C-keele kompilaatoril salvestada numbri ühe asemel kahe registrisse. Pika pika andmetüübi printimiseks erineb ekraani vormindamine teistest andmetüüpidest. Pikaajaline andmetüüp muudab 64-bitiste täisarvude käsitlemise lihtsaks.

Põhimõtteliselt C-keeles ei saa allkirjastamata number üle 32 bitti ületada väärtust 4, 294, 967, 295.

Te võite leida, et teil on vaja käsitleda suuremaid numbreid ja selleks on vaja neid numbreid 64-bitisena kodeerida.

Seda ei käsitleta samal viisil kui tavalist täisarvu. Neid tuleb määratleda erinevalt.

Allkirjastamata 64-bitine täisarv

Tüüp: allkirjastamata pikk pikk

Ekraani vormindamine: % llu

Sufiks konstanti määramiseks: ULL

Näide:

 // Määrake väärtus 4294967296 allkirjastamata pika pikkusega a = 4294967296ULL; // Näita väärtust printf ("% llu", a); 

Allkirjastatud 64-bitine täisarv

Tüüp: pikk

Ekraani vormindamine: % lld

Sufiks konstanti määramiseks: LL

Näide:

 // Määrake väärtus 4294967296 pika pikkusega a = 4294967296LL; // Näita väärtust printf ("% lld", a); 

Kasutades ebatavalist järelliidet konstantse väärtuse määramiseks

Pika pikkusega a = 4294967296

Teie kompilaator küsib, et see number on "pikk" tüüpi jaoks liiga suur. See kontseptsioon on otseselt seotud 32-bitiste protsessorite arhitektuuriga. 32-bitine protsessor on piiratud ja teie vaikimisi kompilaator püüab numbrid ühte registrisse sobitada. Kuid sufiksiga, nagu LL ja ULL, salvestab teie kompilaator teie numbri kahele registrile, st 64-bitiseks, võimaldades seega oluliselt suuremaid numbreid.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited