Heltal (Computer): Forskelle mellem versioner
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... |
(Ingen forskel)
|
Versionen fra 26. apr. 2012, 17:20
Hvordan tal bliver repræsenteret internt i computeren afhænger af programmeringssprog, om der er tale om heltal eller Decimal tal og computerens alder.
heltal repræsentation
I moderne computere bliver heltal næsten altid gemt som 2s-komplement eller en streng af karakterstreng karakterer, afhængig af programmerings sproget. I 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 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 kan da være begrænset til 2^15 (-32768..32767), 2^23, 2^31, 2^63 eller 2^127. I gamle computer er BCD (tal) repræsentation også anvendt.
2s-komplement
Eksempel på 2s-komplement
Heltalsværdi 169:
16 bit computer ord | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bit nummer | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bit værdi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
Heltalsværdi -169:
16 bit computer ord | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bit nummer | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bit værdi | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
Karakterstrengs repræsentation
Eksempel på Karakterstrengs repræsentation
Heltalsværdi 169:
byte nummer | 1. | • | 2. | • | 3. | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII | "1" | "6" | "9" | |||||||||||||||||||||||
Bit nummer | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
Bit værdi | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
Heltalsværdi -169:
byte nummer | 1. | • | 2. | • | 3. | • | 4. | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII | "-" | "1" | "6" | "9" | |||||||||||||||||||||||||||||||
Bit nummer | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
Bit værdi | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
BCD repræsentation
BCD er en teknik hvor tallet gemmes i et ti-tals talsystem. Hver ciffer fylder 4 bit svarende til bitværdierne (0000..1001). bitværdierne (1010..1111) udnyttes ikke. Fordelen ved BCD er at det meget let at udlæse værdien, men det er mindre effektivt ved beregninger. Teknikken er en gammel teknik som ikke anvendes ret meget i dag.
Eksempel på BCD repræsentation
Heltalsværdi 169:
nibbel nummer (4 bit) | 1. | • | 2. | • | 3. | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ciffer værdi | "1" | • | "6" | • | "9" | |||||||||
Bit nummer | 3 | 2 | 1 | 0 | 3 | 2 | 1 | 0 | 3 | 2 | 1 | 0 | ||
Bit værdi | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
Se også