Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Zahldar­stel­lung

Ein­füh­rung

Im Ma­the­ma­tik­un­ter­richt er­ar­bei­tet man sich von der Grund­schu­le aus­ge­hend schritt­wei­se die ver­schie­de­nen Zahl­be­rei­che. An­ge­fan­gen mit den na­tür­li­chen Zah­len ℕ , geht man über die gan­zen Zah­len ℤ zu den ra­tio­na­len Zah­len ℚ bis man schließ­lich bei den re­el­len Zah­len ℝ lan­det.

Ver­nach­läs­sigt man die Tat­sa­che, dass mit dem Com­pu­ter na­tür­lich nur eine be­schränk­te Zahl­men­ge dar­stel­len lässt, so las­sen sich diese Schrit­te mit ein paar Ein­schrän­kun­gen auch auf die bi­nä­re Dar­stel­lung im Com­pu­ter über­tra­gen und die un­ter­schied­li­chen Zahldar­stel­lun­gen ähn­lich zu den Zahl­be­reich­ser­wei­te­run­gen im Un­ter­richt be­han­deln.

Der Fokus liegt dabei auf der im Bil­dungs­plan neu hin­zu­ge­kom­me­nen Fest­kom­ma­dar­stel­lung. Es soll hier aber ge­zeigt wer­den, dass die Re­chen­ver­fah­ren die den un­ter­schied­li­chen Dar­stel­lun­gen (bis auf die Gleit­kom­ma­dar­stel­lung) gleich ist.

Com­pu­ter­dar­stel­lung von ℕ : Bi­närs­ys­tem

Es soll hier nicht de­tail­liert auf das Bi­närs­ys­tem ein­ge­gan­gen wer­den, es wird vor­aus­ge­setzt, dass man als In­for­ma­ti­ker prin­zi­pi­ell mit dem Bi­närs­ys­tem ver­traut ist.

Zu­nächst soll­te jedem klar sein, dass im Com­pu­ter – an­ders als in der Ma­the­ma­tik – die Zahl­men­gen na­tür­lich nicht un­end­lich son­dern durch die Bit­zahl be­grenzt sind.

Im Auf­bau­kurs In­for­ma­tik in Klas­se 7 lernt man die ein­fa­che Bi­när­dar­stel­lung ken­nen, diese ent­spricht den na­tür­li­chen Zah­len. Meis­tens wird hier­bei in der Schu­le auch das schrift­li­che Rech­nen mit Bi­n­är­zah­len ana­log zum Rech­nen mit De­zi­mal­zah­len ein­ge­führt, wel­ches die Schü­ler be­reits in der Grund­schu­le ge­lernt hat­ten.

Bei­spie­le:

Rechnen mit Binärzahlen

Bild­quel­le: Rech­nen mit Bi­n­är­zah­len von ZPG In­for­ma­tik [CC BY-SA 4.0 DE], aus 1_hin­ter­grund.odt, be­ar­bei­tet

Com­pu­ter­dar­stel­lung von ℤ : Einer- und Zwei­er­kom­ple­ment

Für die erste Zahl­be­reich­ser­wei­te­rung, den ne­ga­ti­ven Zah­len, las­sen sich meh­re­re Dar­stel­lun­gen fin­den. Die für die Schü­ler am of­fen­sicht­lichs­te ist, das erste Bit als Vor­zei­chen­bit zu nut­zen.

Bei­spiel: 1310 = 0000 11012, − 1310 = 1000 11012

Hier­mit las­sen sich al­ler­dings die schrift­li­chen Re­chen­ge­set­ze nicht mehr an­wen­den.

Bei­spiel: − 1310 + 110 = 1000 11012 + 0000 00012 = 1000 11102 = − 1410 Blitz Wi­der­spruch

Oft­mals wird des­halb das so­ge­nann­te Ei­n­er­kom­ple­ment be­nutzt. Bei die­sem wer­den von allen „Zahl­bits“ das Kom­ple­ment ge­bil­det.

Bei­spiel: 1310 = 0000 11012, − 1310 = 1111 00102

Mit Zah­len in die­sem Ei­n­er­kom­ple­ment lässt sich dann wie bis­her rech­nen, so­fern die Rech­nung nicht „über die Null“ geht. Ein damit zu­sam­men­hän­gen­des Pro­blem ist die dop­pel­te Dar­stel­lung der Null (010 = 0000 00002 = 1111 11112).

Diese Pro­ble­me bei der Dar­stel­lung ne­ga­ti­ver Zah­len be­hebt das Zwei­er­kom­ple­ment. Bei die­sem wird le­dig­lich die Wer­tig­keit des höchs­ten Bit ne­giert, so dass die­ses bei einer 8-Bit-Zahl nicht dem de­zi­ma­len Wert 128 son­dern − 128 ent­spricht.

Bei­spie­le: 12710 = 0111 11112
− 12810 = 1000 00002
− 12710 = 1000 00012
− 110 = 1111 11112

Auch wenn die­ses auf den ers­ten Blick um­ständ­lich scheint, bie­tet diese Dar­stel­lung den Vor­teil, dass sämt­li­che Rech­nun­gen wie auch für die po­si­ti­ven Zah­len gel­ten! Man kann diese Rech­nun­gen also auf der sel­ben ALU des Pro­zes­sors durch­füh­ren.

Com­pu­ter­dar­stel­lung von ℚ :Fest­kom­ma­zah­len

Die nächs­te Zahl­be­reich­ser­wei­te­rung, ist zu­gleich auch die Neue­rung im Bil­dungs­plan: die Ein­füh­rung von Fest­kom­ma­zah­len. Bei so einer Zahl ist die Po­si­ti­on des Kom­mas fest vor­ge­ge­ben.

An­mer­kung: Aus ma­the­ma­ti­scher Sicht ist die Fest­kom­ma­dar­stel­lung na­tür­lich keine ex­ak­te Dar­stel­lung von ℚ ! Das Vor­ge­hen soll nur ver­deut­li­chen, dass man di­dak­tisch die Zahl­be­reich­ser­wei­te­run­gen in der In­for­ma­tik ähn­lich zu denen in der Ma­the­ma­tik auf­bau­en kann.

Der Grund­ge­dan­ke hin­ter Fest­kom­ma­zah­len ist die ex­ak­te Dar­stel­lung ohne Run­dungs­feh­ler einer Teil­men­ge der ra­tio­na­len Zah­len. Dies gilt na­tür­lich nur im Rah­men der An­zahl der Bits.

Bei­spie­le: 4,7510 = 0001 00112, dabei setzt sich die Bi­n­är­zahl aus 6 Vor­kom­ma-, und 2 Nach­kom­ma­stel­len zu­sam­men.

Man be­zeich­net die Ge­samt­zahl der Bits mit n, üb­li­cher­wei­se sind dann die ers­ten k (≤ n) Stel­len Vor­kom­ma­stel­len und die rest­li­chen m (= n − k) Nach­kom­ma­stel­len.

For­mal ist eine Fest­kom­ma­zahl wie auch eine Bi­n­är­zahl de­fi­niert:

Formel

der Un­ter­schied hier­bei ist le­dig­lich, dass der Ex­po­nent ent­spre­chend auch in den ne­ga­ti­ven Be­reich reicht.

Die Vor­tei­le im schu­li­schen Be­reich sind fol­gen­de:

  • die Wer­tig­keit der Bits las­sen sich ana­log zu den Zwei­er­po­ten­zen fort­set­zen:
Wer­tig­keit 32 16 8 4 2 1 0,5 0,25
Zwei­er­po­tenz 25 24 23 22 21 20 2− 1 2− 2
Zif­fern 0 0 0 1 0 0 1 1
  • Die Ad­di­ti­on und die Sub­trak­ti­on las­sen sich iden­tisch mit oben auf­ge­führ­ten Re­chen­re­geln durch­füh­ren.
  • Dem­entspre­chend las­sen diese sich auch auf einer her­kömm­li­chen ALU be­rech­nen.

Die Nach­tei­le sind:

  • Der Zahl­um­fang ist re­la­tiv ge­ring.
  • Bei Mul­ti­pli­ka­ti­on und Di­vi­si­on müs­sen die Stel­len an­ge­passt wer­den. (s.u.)
  • Nach­kom­ma­stel­len nicht be­lie­big dar­stell­bar, z.B. lässt sich 0,1 nicht mit einer Fest­kom­ma­dar­stel­lung aus­drü­cken.3

Auf­grund der ex­ak­ten Dar­stel­lung ist die Menge aller Fest­kom­ma­zah­len einer vor­ge­ge­be­nen Länge n im Ver­gleich zu den Gleit­kom­ma­zah­len sehr ge­ring.

In der all­ge­mei­nen No­men­kla­tur wer­den Fest­kom­ma­zah­len mit einer Nach­kom­ma­stel­le mit „Q1“, mit zwei Nach­kom­ma­stel­len mit „Q2“ usw. be­zeich­net.

An­pas­sung der Stel­len: Wer­den zwei 8bit-Zah­len mit­ein­an­der mul­ti­pli­ziert, so er­gibt sich dar­aus eine 16bit-Zahl. Bei dem be­kann­ten, ganz­zah­li­gen Bi­närs­ys­tem wer­den die höchst­wer­tigs­ten Bits ein­fach ab­ge­schnit­ten, da diese nicht in einer 8bit-Zahl ab­ge­spei­chert wer­den kön­nen. Sel­bi­ges gilt auch für Fest­kom­ma­zah­len, auch hier bräuch­te man zur ge­nau­en Spei­che­rung dann die dop­pel­te An­zahl an Bits und wir müs­sen einen Teil davon ab­schnei­den.

Wer­den zwei Q2-Zah­len mit­ein­an­der mul­ti­pli­ziert, so er­gibt sich dar­aus eine Q4-Zahl. Dies lässt sich di­rekt an den Zwei­er­po­ten­zen ab­le­sen, hier­für muss man le­dig­lich die nie­der­wer­tigs­ten Stel­len be­trach­ten:
2−2 · 2−2 = 2−4 Dar­aus er­gibt sich, dass man nach der Mul­ti­pli­ka­ti­on, um wie­der eine Q2-Zahl zu be­kom­men, ent­spre­chend die letz­ten bei­den Stel­len (2−3 und 2−4) sowie die höchst­wer­ti­gen 6 Stel­len ab­schnei­den muss, so dass auch wie­der 8 Bit übrig blei­ben.

Bei­spie­le: (zum bes­se­ren Ver­ständ­nis wird auch im Bi­närs­ys­tem hier das Komma mit­ge­schrie­ben)

17,7510 = 010001,112
42,2510 = 101010,012
17,7510⋅42,2510 = 749,937510 = 1011101101,11112
101101,112 = 45,7510

Die 8 fett mar­kier­ten Stel­len er­ge­ben die neue 8 Bit große Fest­kom­ma­zahl.

Des wei­te­ren las­sen sich damit nur Viel­fa­che von 2er-Po­ten­zen dar­stel­len. Es las­sen sich somit be­stimm­te Zah­len aus dem De­zi­mal­sys­tem nur un­ge­nau dar­stel­len, ins­be­son­de­re bei ge­rin­ger Bit­län­ge.­4

Computerdar­stellung von ℝ : Gleit­kom­ma­zah­len

Nicht im Bil­dungs­plan ent­hal­ten sind die Gleit­kom­ma­zah­len. Der Voll­stän­dig­keit hal­ber sol­len diese hier je­doch auch mit auf­ge­führt wer­den.

Wir be­trach­ten zu­nächst die wis­sen­schaft­li­che Dar­stel­lung von (ins­be­son­de­re gro­ßen) Zah­len:

3,84 = 384 · 10−2 = 38,4 · 10−1 = 0,0384 ·102

ge­sucht ist für die Dar­stel­lung im Com­pu­ter, die:

  • einen mög­lichst gro­ßen Be­reich der re­el­len Zah­len um­fasst
  • die Ge­nau­ig­keit bei klei­nen Zah­len soll groß, bei gro­ßen Zah­len kann sie nied­ri­ger sein.
Die Gleit­kom­ma­dar­stel­lung ar­bei­tet hier wie die wis­sen­schaft­li­che Dar­stel­lung, eine Gleit­kom­ma­zahl be­steht aus meh­re­ren Tei­len:
  1. einem Vor­zei­chen­bit V
  2. dem Ex­po­nen­ten E → Im hier dar­ge­stell­ten Stan­dard IEEE754 mit einem 8 Bit lan­gen Ex­po­nen­ten wird der Bi­när­wert an­schlie­ßend −127 ge­rech­net um den Ex­po­nen­ten zu be­kom­men.
  3. der Man­tis­se M → Das er­gibt die Nach­kom­ma­stel­len, als Vor­kom­ma­stel­le steht laut De­fi­ni­ti­on immer 1.

Der ei­gent­li­che Zahl­wert Z er­gibt sich damit:
Z=(1+M) · 2E-127

An­mer­kung: man könn­te auch eine an­de­re Basis außer 2 be­nut­zen, diese ist so aber im Stan­dard IEEE754 de­fi­niert.

Bei­spiel: bei Java ver­wen­det eine Va­ria­ble vom Da­ten­typ float 32 Bit, die sich wie folgt auf­tei­len: Vor­zei­chen (1 Bit), Ex­po­nent (8 Bit), Man­tis­se (23 Bit)

Gleitkommadarstellung

Bild­quel­le: Gleit­kom­ma­dar­stel­lung von ZPG In­for­ma­tik [CC BY-SA 4.0 DE], aus 1_hin­ter­grund.odt, be­ar­bei­tet

Es er­gibt sich die Zahl Z = (1+0,625) · 2130 - 127 = 1,625 · 23 = 13

An­mer­kung: Die Mul­ti­pli­ka­ti­on von Gleit­kom­ma­zah­len ist auf­wän­di­ger als bei Fest­kom­ma­zah­len, die Ad­di­ti­on sogar we­sent­lich auf­wän­di­ger! Des­halb ent­hal­ten mo­der­ne Pro­zes­so­ren neben der ALU für Fest­kom­ma­ope­ra­tio­nen meist noch eine FPU (floa­ting point unit), die auf Gleit­kom­ma­ope­ra­tio­nen spe­zia­li­siert ist.

Um zwei Zah­len in Ex­po­nen­ten­dar­stel­lung mit­ein­an­der mul­ti­pli­zie­ren zu kön­nen, müs­sen Po­tenz­ge­set­ze an­ge­wen­det wer­den. Dazu müs­sen le­dig­lich die bei­den Man­tis­sen mit­ein­an­der mul­ti­pli­ziert und die Ex­po­nen­ten ad­diert wer­den.

Um zwei Po­ten­zen ad­die­ren zu kön­nen, muss so­wohl die Basis als auch der Ex­po­nent über­ein­stim­men. Die Basis ist hier­bei immer 2, die Ex­po­nen­ten un­ter­schie­den sich je­doch im all­ge­mei­nen. Das be­deu­tet, dass für eine ein­fa­che Ad­di­ti­on die bei­den Zah­len zu­erst um­ge­rech­net wer­den müs­sen.

 

3 Auch in an­de­ren Zahldar­stel­lun­gen ist das nicht genau mög­lich!

4 Das selbe Pro­blem hat na­tür­lich auch die Gleit­kom­ma­dar­stel­lung, kann dort je­doch deut­lich ge­nau­er an­ge­nä­hert wer­den.

 

Hin­ter­grund­in­for­ma­tio­nen: Her­un­ter­la­den [odt][1 MB]

 

Wei­ter zu Text­dar­stel­lung