>Pl azt sem értem hogy az egésznél:
>2.5 or (5+0.5*number of digits)
Sikerült egy két dolgot megtudnom a fenti képletről.
1. Az egész szám mérete akkor 2.5 bájt ha a szám mint másolat szerepel
a memóriában. Ilyenkor a másolatot egy mutató (pointer) reprezentálja.
A pointer tartalma egy memóriacím ami az egész szám eredeti példányára
mutat. A pointer típusú változó mérete pedig 2.5 bájt.
2. A képlet helyesen tényleg :
2.5 vagy (5.5+0.5*a számjegyek száma).
3. Az egész szám (eredeti példány) tárolása a memóriában:
Ehhez előbb egy szómagyarázat:
Nibble= 4 bit, egy fél bájt.
Az ezen ábrázolható legnagyobb szám 2^4=16, egy hexadecimális
számjegy. De jól elfér rajta egy 10-es számrendszerbeli számjegy is.
http://hu.wikipedia.org/wiki/Nibble
Tehát az egész szám tárolása a HP-n:
Prolog (02614)= 5 nibble
(Ez gondolom a változó típusa. De mért ekkora helyen?)
Számjegyek száma= 5 nibble
(2^20= 1 048 576 számjegy, ennyi nem fér bele a
memóriába, bőven elég)
Első számjegy= 1 nibble LSB
(LSB: Least significant byte)
http://en.wikipedia.org/wiki/Least_significant_bit
......
Utólsó számjegy= 1 nibble MSB
(MSB: Most significant byte)
http://en.wikipedia.org/wiki/Most_significant_bit
Előjel= 0/9= +/- 1 nibble
Ha 0-t írok be annak mérete: 5.5 bájt.
Vagyis Prolog+számj.száma+Első számjegy
5+5+1 nibble= 44 bit= 5.5 bájt.
(A nullának nincs előjele.)
Ha 1-et írok be annak 6 bájt a mérete, mivel itt már hozzájön az
előjel nibble. Így az összméret 48 bit, 6 bájt. :-) Ezért egyezik meg
a +1 és a -1 mérete. Ettől kezdve minden beírt számjeggyel 4 bittel nő
a változó mérete.
Két dolgot nem értek:
1. Az előjelnek elég lett volna egyetlen bit is. (0/1) Habár lehet
hogy így egységesebb az adatszerkezet, gyorsabban lehet benne keresni.
(A Wikipédia cikk szerint ez IBM szabvány egész számok tárolásához.)
2. Minek ekkora szám az egész szám azonosításához? (02614= 5 nibble)?