Heltall (computer science)

Forskjellige Prosessorer støtter forskjellige integrert data typer. Vanligvis, maskinvare vil støtte både signerte og usignerte typer, men bare en liten, fast sett av bredder.

tabellen ovenfor viser integrert type bredder som er støttet i maskinvaren ved vanlige prosessorer. Høyt nivå programmeringsspråk gi flere muligheter. Det er vanlig å ha en «dobbel bredde’ integrert type som har dobbelt så mange biter som den største hardware-type som støttes., Mange språk har også bit-felt-typer (et bestemt antall biter, vanligvis begrenset til å være mindre enn den maksimale maskinvare-støttet bredde) og spekter-typer (som kan representere bare heltall i et angitt område).

Noen språk, som for eksempel Lisp, Smalltalk, REXX, Haskell, Python, og Raku støtte vilkårlig presisjon heltall (også kjent som uendelig presisjon heltall eller bignums)., Andre språk som ikke støtter dette konseptet som en topp-nivå konstruere kan ha biblioteker tilgjengelig for å representere svært store tall ved hjelp av matriser av mindre variabler, som for eksempel Java er BigInteger klasse eller Perl er «bigint» – pakke. Disse bruker så mye av datamaskinens minne som er nødvendig for å lagre tall, men en datamaskin har bare en begrenset mengde lagringsplass, slik at de også kan bare representere et endelig delmengde av matematiske heltall. Disse ordningene støtte for svært store tall, for eksempel en kilobyte minne som kan brukes til å lagre tall opp til 2466 desimale sifre.,

En Boolsk eller Flagg typen er en type som kan representere bare to verdier: 0 og 1, som vanligvis identifisert med falske og sanne henholdsvis. Denne type kan lagres i minnet ved hjelp av en eneste bit, men er ofte gitt en full byte for lettere å identifisere og hastighet av tilgang.

En fire-bit mengde er kjent som bite (når du spiser, er mindre enn en matbit) eller nybble (som er et ordspill på den formen av ordet byte). En bite tilsvarer ett siffer i heksadesimaler og har ett siffer eller et tegn på at koden i binær-kodet desimal.,

Byte og octetsEdit

Main artikler: Byte og Oktett (computing)

begrepet byte opprinnelig betydde «den minste adresserbare enheten av minne». I det siste, 5-, 6-, 7-, 8-, og 9-bits byte har alle vært brukt. Det har også vært datamaskiner som kan ta individuelle biter (‘bit-adressert maskin»), eller som bare kunne adresse 16 – eller 32-biters mengder (‘word-adressert maskin’). Begrepet byte ble vanligvis ikke brukt i det hele tatt i forbindelse med bit – og word-adressert maskiner.

begrepet octet refererer alltid til et 8-bits kvantitet., Det er for det meste brukt i området av datanettverk, hvor datamaskiner med forskjellige byte bredder kan ha til å kommunisere.

I moderne bruk byte nesten uten unntak betyr åtte biter, siden alle andre størrelser som har falt ut av bruk, og dermed byte har kommet for å bli synonymt med oktett.

WordsEdit

utdypende artikkel: Word (datamaskinarkitektur)

Praktisk talt alle nye desktop-prosessorer er i stand til å bruke 64-bits ord, selv om embedded prosessorer med 8 – og 16-bits ord størrelse er det fremdeles vanlig. Den 36-bits word lengde var vanlig i de tidlige dagene av datamaskiner.,

En viktig årsak til ikke-portabilitet av programvare er feil antagelse at alle datamaskiner som har det samme ordet størrelse som datamaskinen brukes av programmerere. For eksempel, hvis en programmerer å bruke C-språk feil erklærer som en int-variabel som vil bli brukt til å lagre verdier større enn 215-1, vil programmet mislykkes på datamaskiner med 16-bits heltall. At variabelen skal ha blitt erklært som lenge, noe som har minst 32 biter på hvilken som helst datamaskin., Programmerere kan også feilaktig anta at en peker kan konverteres til et heltall uten tap av informasjon, som kan jobbe på (noen) 32-biters datamaskiner, men mislykkes på 64-biters datamaskiner med 64-bit pekere og 32-bits heltall. Dette problemet er løst ved C99 i stdint.h i form av intptr_t.

Kort integerEdit

En kort heltall kan representere et helt tall som kan ta med mindre bagasje, mens det å ha et mindre utvalg, sammenlignet med en standard heltall på samme maskin.

I C er det angitt med kort., Det er nødvendig å være minst 16 biter, og er ofte mindre enn en standard heltall, men dette er ikke nødvendig. En konform programmet kan anta at det kan trygt lagre verdier på mellom −(215-1) og 215-1, men det kan ikke anta at omfanget er ikke større. I Java, en kort det er alltid et 16-biters heltall. I Windows API, datatype KORT er definert som et 16-biters signert heltall på alle maskiner.,>−32,768

+32,767 ushort unsigned 2 0 65,535 Java short signed 2 −32,768 +32,767

Long integerEdit

A long integer can represent a whole integer whose range is greater than or equal to that of a standard integer on the same machine.,

I C, det er merket av for lenge. Det er nødvendig å være minst 32 bits, og kan eller ikke kan være større enn en standard heltall. En konform programmet kan anta at det kan trygt lagre verdier på mellom −(231-1) og 231-1, men det kan ikke anta at omfanget er ikke større.

Lang longEdit

«lenge» omdirigerer hit. Det er ikke å forveksles med lang eller lang, Lang, Lang tid.,

I C99 versjon av C programmeringsspråk og C++11 versjon av C++, en long long typen støttes som har dobbel minimum kapasitet på standard long. Denne typen er ikke støttes av samlerne som krever C-kode for å være kompatibel med tidligere C++ standard, C++03, fordi lenge type finnes ikke i C++03. For en ANSI/ISO kompatibel kompilatoren, minimumskravene for den angitte områder, som er, −(263-1) til 263-1 for registrerte og 0 til 264-1 for usignerte, må være oppfylt, men å utvide dette området er tillatt., Dette kan være et problem når utveksling av kode og data mellom plattformer, eller gjør direkte hardware tilgang. Dermed er det flere sett med overskrifter som gir plattform uavhengig nøyaktig bredden typer. C standard biblioteket gir stdint.h; dette ble innført i C99 og C++11.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *