Heltal (datalogi)

forskellige CPU ‘ er understøtter forskellige integrerede datatyper. Typisk understøtter hard .are både signerede og usignerede typer, men kun et lille, fast sæt bredder.tabellen ovenfor viser integrerede typebredder, der understøttes i Hard .are af almindelige processorer. Programmeringssprog på højt niveau giver flere muligheder. Det er almindeligt at have en ‘dobbelt bredde’ integreret type, der har dobbelt så mange bits som den største hard .are-understøttet type., Mange sprog har også bit-felt-typer (et bestemt antal bits, som regel begrænset til at være mindre end den maksimale hardware-understøttet bredde) og en række typer, der kan repræsentere kun heltal i et bestemt interval).nogle sprog, såsom Lisp, Smalltalk, re.., Haskell, Python og Raku understøtter vilkårlige præcisions-heltal (også kendt som uendelige præcisions-heltal eller bignums)., Andre sprog, der ikke understøtter dette koncept som en konstruktion på øverste niveau, kan have biblioteker til rådighed til at repræsentere meget stort antal ved hjælp af arrays af mindre variabler, såsom Javas BigInteger-klasse eller Perls “bigint” – pakke. Disse bruger så meget af computerens hukommelse, som det er nødvendigt for at gemme numrene; en computer har dog kun en begrænset mængde lagerplads, så de også kun kan repræsentere en endelig delmængde af de matematiske heltal. Disse ordninger understøtter meget store tal, for eksempel kan en kilobyte hukommelse bruges til at gemme tal op til 2466 decimaler lange.,

en boolsk eller Flag type er en type, der kun kan repræsentere to værdier: 0 og 1, normalt identificeret med henholdsvis falsk og sand. Denne type kan gemmes i hukommelsen ved hjælp af en enkelt bit, men er ofte givet en fuld byte for nemheds skyld adressering og hastighed af adgang.

en fire-bit mængde er kendt som en nibble (når man spiser, er mindre end en bid) eller nybble (er en ordspil på formen af ordet byte). En nibble svarer til et ciffer i HE .adecimal og har et ciffer eller en tegnkode i binærkodet decimal.,

Bytes og octetsEdit

hovedartikler: Byte og Octet (computing)

udtrykket byte betød oprindeligt ‘den mindste adresserbare hukommelsesenhed’. I fortiden, 5-, 6-, 7-, 8-, og 9 – bit bytes er alle blevet brugt. Der har også været computere, der kunne adressere individuelle bits (‘bit-adresseret maskine’), eller som kun kunne adressere 16 – eller 32-bit mængder (‘ord-adresseret maskine’). Udtrykket byte blev normalt slet ikke brugt i forbindelse med bit – og ord-adresserede maskiner.

udtrykket oktet refererer altid til en 8-bit mængde., Det bruges mest inden for computernetværk, hvor computere med forskellige byte bredder muligvis skal kommunikere.

i moderne brug betyder byte næsten altid otte bits, da alle andre størrelser er faldet i brug; således er byte blevet synonymt med oktet.

Worordsedit

Hovedartikel: Wordord (computerarkitektur)

næsten alle nye desktop-processorer er i stand til at bruge 64 – bit ord, selvom indlejrede processorer med 8-og 16-bit ordstørrelse stadig er almindelige. 36-bit ordlængden var almindelig i de tidlige dage af computere.,

en vigtig årsag til ikke-portabilitet af Soft .are er den forkerte antagelse om, at alle computere har samme ordstørrelse som den computer, der bruges af programmereren. For eksempel, hvis en programmør, der bruger C-sproget forkert, erklærer Som int en variabel, der vil blive brugt til at gemme værdier større end 215-1, vil programmet mislykkes på computere med 16-bit heltal. Denne variabel skulle have været erklæret så længe, som har mindst 32 bit på enhver computer., Programmører kan også forkert antage, at en markør kan konverteres til et heltal uden tab af information, som muligvis fungerer på (nogle) 32-bit computere, men mislykkes på 64-bit computere med 64-bit pointers og 32-bit heltal. Dette problem er løst af C99 i stdint.h i form af intptr_t.

kort heltaldit

et kort heltal kan repræsentere et helt tal, der kan tage mindre lagerplads, mens det har et mindre interval sammenlignet med et standard heltal på den samme maskine.

i C betegnes det kort., Det skal være mindst 16 bit, og er ofte mindre end et standard heltal, men det er ikke nødvendigt. Et overensstemmende program kan antage, at det sikkert kan gemme værdier mellem −(215-1) og 215-1, men det må ikke antage, at området ikke er større. I Java er en kort altid et 16-bit heltal. I APINDO .s API defineres datatype SHORT som et 16-bit underskrevet heltal 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 er det betegnet med lang. Det skal være mindst 32 bit, og kan eller ikke være større end et standard heltal. Et overensstemmende program kan antage, at det sikkert kan gemme værdier mellem −(231-1) og 231-1, men det må ikke antage, at området ikke er større.

Long longEdit

“long long” omdirigerer her. Det må ikke forveksles med lang eller Lang, Lang, Lang.,

i C99-versionen af C-programmeringssproget og C++11-versionen af C++ understøttes en long long type, der har dobbelt minimumskapacitet for standarden long. Denne type understøttes ikke af compilere, der kræver, at C-kode er i overensstemmelse med den tidligere C++ – standard, C++03, fordi den lange lange type ikke eksisterede i C++03. For en ANSI/ISO-kompatibel compiler, minimumskravene for de angivne intervaller, der er, −(263-1) til 263-1 for undertegnede og 0 til 264-1 for usignerede, skal blive opfyldt; dog kan forlænge denne serie er tilladt., Dette kan være et problem ved udveksling af kode og data mellem platforme eller direkte hard .areadgang. Der er således flere sæt overskrifter, der giver platformuafhængige nøjagtige breddetyper. C standard bibliotek giver stdint.h; dette blev indført i C99 og C++11.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *