Page 20 - Enterpress Magazin - 2021. 4-6.
P. 20
20. oldal 2021. január – június
IS-FORTH - 5. rész
Intelligent Software - 1985.
rendszerbővítő, FORTH programozási nyelv
3. Adattípusok
(a bináris ábrázolás: 1 0000 0000 0000 0000).
3.1. Előjeles és előjel nélküli értékek 65537 = 1
Etessük meg az interpreterrel a következő parancssort: (a bináris ábrázolás: 1 0000 0000 0000 0001) stb. Hason-
lóképpen a
65535
35537 30000 + .
A kapott válasz
hatására is 1 a válasz. A FORTH a túlcsordulást nem kezeli,
-1 magunknak kell rá figyelni.
Pedig mi nem -1-et tettünk a veremre. Vagy mégis? A 3.2. A duplaszavak
65535 16 biten ábrázolva:
Ha egy szám nem fér el egy szóban, akkor ábrázolhatjuk
1111 1111 1111 1111 kettőben, azaz: egy 32 bites duplaszóban. A duplaszó a
vermen úgy helyezkedik el, hogy a magasabb helyértékű
A szó a vermen talált számot előjelesnek tekinti, azaz az szava (az „eleje”) van felül. Tehát pl. az 1 0 sorozattal egy 1
első bitet előjelbitnek, és ha az 1, akkor a számot negatív- értékű duplaszót tettünk a verembe.
nak. A negatív számokat úgy szokás ábrázolni, hogy a szá- Erről a
mot és ellentettjét ábrázoló két bináris sorozat összege 0
legyen. Ez 16 biten úgy megy, hogy a -1-et és 1-et jelentő D. ( d - - - - )
szám összege 2^16 azaz:
szó segítségével győződhetünk meg; ez kiírja a képernyő-
1 0000 0000 0000 0000 re a duplaszót, amely a verem két felső eleméből áll:
(a magas helyértékű 1 már kicsordul a tizenhat bitből, ma- 1 0 D. = 1
radnak a 0 jegyek). És valóban: -1 -1 D. = -1
-1 0 D. = 65535
1111 1111 1111 1111
+ A kiíratott duplaszavak binárisan a következő ábrán látha-
1 tók.
1 0000 0000 0000 0000
vagy, hogy az otthonosabb tízes számrendszernél marad-
junk:
65535 + 1 = 65536= 2^16.
Mi lesz a túl nagy számokkal?
Látjuk, hogy 16 biten 2^16-1 = 65535-nél nagyobb szám
nem létezhet. A nagyobb értékek első jegyei egyszerűen A D. szó nevében és a veremhatás jelölésében a d betű a
„lecsordulnak”, elvesznek: doubleword angol szó rövidítése, bár akár a magyar „dup-
laszó” változaté is lehetne. Kevésbé körmönfont módon is
65536 = 0 lehet a verembe duplaszavakat csalni. Ugyanis: