Heltal (Computer): Forskelle mellem versioner

Content deleted Content added
Ny side: Hvordan '''tal''' bliver repræsenteret internt i computeren afhænger af programmeringssprog, om der er tale om heltal eller Decimal tal og compu...
 
No edit summary
Linje 1:
Hvordan '''talheltal''' (på engelse ''integer'') bliver repræsenteret internt i computeren afhænger af [[Programmeringssprog|programmeringssprog]], omcomputerteknologi derog ercomputeralder. taleDisse omting [[heltal]]har ellerogså [[Decimal|Decimalbetydning for hvor store tal]] ogcomputeren computerenskan alderhåndtere.
 
== heltalIntern repræsentation ==
I moderne computere bliver heltal næsten altidoftest gemt som [[#2s-komplement|2s-komplement]] eller en streng af [[#Karakterstrengs repræsentation|karakterstreng]]. karakterer,Dette afhængig afblandt programmeringsandet af sprogetprogrammeringssproget. I [[C (programmeringssprog)|programmeringssproget C]] bliver heltalsværdier gemt som 2s-komplement. Afhængig af programmeringssproget vil der være grænser for hvor store og små tal man kan regne med. I [[Lisp|programmeringssproget LISP]] er der ingen begrænsning på størrelsen af heltal.
 
Når tallet bliver gemt som 2s-komplement er der afsat fast størrelse på forhånd og størrelsen kanvil da være begrænset til 2^15 (-32768..32767), 2^23 (-8.388.608..8.388.607), 2^31 (-2.147.483.648..2.147.483.647), 2^63 (-9.223.372.036.854.775.808..9.223.372.036.854.775.807) eller 2^127 afhængig af antallet af [[bit|bits]].
I gamle computer er [[BCD (tal)]] [[#BCD repræsentation|repræsentation]] også anvendt.
 
 
=== 2s-komplement ===
Når et tal er gemt i '''2s-komplement''' vil det mestbetydendebit kaldes fortegnsbit. Et "1" indikerer af tallet er negativt. Hvis man har 8 bit til rådighed kan man repræsenterer tal i området -128..127. Uanset antallet af bit vil man kunne repræsenterer en negativ værdi hvis absolutte værdi er en større end den tilsvarende positive værdi.
 
{| border="1" cellspacing="0"
| colspan="2" | 2s-komplement
|-
! Heltal
! Binær værdi
|-
| align="center" | +17
| align="center" | 0001.0001
|-
| align="center" | +2
| align="center" | 0000.0010
|-
| align="center" | 0
| align="center" | 0000.0000
|-
| align="center" | -2
| align="center" | 1111.1110
|-
| align="center" | 17
| align="center" | 1110.1111
|}
 
 
==== Eksempel på 2s-komplement ====
Line 98 ⟶ 122:
 
=== Karakterstrengs repræsentation ===
Når tallet gemmes i en '''karakterstreng''' vil hver ciffer i tallet (10 tals system) optage et tegn i karakterstrengen. Karakterstrengen vil være enkodet i samme tegnsæt som i øvrigt anvendes på computeren. I eksemplerne her anvendes ASCII alfabetet.
 
==== Eksempel på Karakterstrengs repræsentation ====