plu re

Enkonduko en la aŭtomatan daten-prilaboradon

5 Kodado de datenaj tipoj: nombroj

5 Kodierung von Datentypen: Zahlen

5.1 Entjeraj nombroj

Entjeraj nombroj ("sen komo") estas ofte kodataj en la duuma sistemo kaj memorataj plej ofte en 1, 2, 4 aŭ 8 bajtoj. La unua bito kodas la signumon (0 por pozitivaj, 1 por negativaj nombroj), tiel ke restas 7, 15, 31 aŭ 63 duumaj ciferoj por la absoluta valoro de la nombro.

Ekzemplo: 69 = 64 + 4 + 1.

5.1 Ganze Zahlen

Ganze Zahlen ("Zahlen ohne Komma") werden oft im Binärsystem kodiert und meistens in 1, 2, 4 oder 8 Byte gespeichert. Das erste Bit kodiert das Vorzeichen (0 für positive, 1 für negative Zahlen), so dass 7, 15, 31 oder 62 Binärziffern (Bits) für den absoluten Zahlenwert verbleiben.

Beispiel: 69 = 64 + 4 + 1.

1 * 64 64
0 * 32 0
0 * 16 0
0 * 8 0
1 * 4 4
0 * 2 0
1 * 1 1
1000101 69

Tia procedo reprezentas nombron kiel sumon de potencoj de 2 (20, 21, 22, …). Oni nomas ĝin malkomponado de nombro al potencoj de 2. Facile eblas pruvi, ke tia malkomponado estas ĉiam unika, t. e. por ĉiu nombro ekzistas unu kaj nur unu reprezentaĵo tiuforma.

Tabelo de la unuaj duumaj nombroj montras, kiel la nombroj kreskas: Oni provas altigi la lastan pozicion (de 0 al 1), sed kiam tio ne eblas (ĉar ĝi jam estas 1), oni ŝanĝas al 0 kaj "transportas" la altigon maldekstren, same kiel en la dekuma sistemo, kiam la dekstra cifero estas 9:

Dieser Vorgang stellt die Zahl als Summe von Potenzen der Zahl 2 (20, 21, 22, …) dar. Man nennt ihn Zerlegung der Zahl in Zweierpotenzen. Es lässt sich leicht beweisen, dass eine solche Zerlegung immer eindeutig ist; d. h. für jede ganze Zahl gibt es eine und nur eine solche Darstellung.

Eine Liste der ersten Binärzahlen zeigt, wie diese Zahlen wachsen: Man versucht, die letzte Stelle (von 0 auf 1) zu erhöhen, und wenn das nicht geht (weil die Stelle schon den Wert 1 hat), macht man sie zu 0 und "überträgt" die Erhöhung nach links, genau wie im Dezimalsystem, wenn die rechte Ziffer gleich 9 ist:

00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
101010

Depende de la uzataj bajtoj, entjera nombro povas atingi jenajn maksimumajn valorojn:

Je nach der Zahl der verwendeten Bytes kann eine ganze Zahl folgende Maximalwerte annehmen:

bajtojmaksimuma valoro
BytesMaximalwert
128−1 =255
2216−1 =65.535
4232−1 = 4.294.967.295
8264−1 = 18.446.744.073.709.551.615

Se oni volas kodi ankaŭ negativajn nombrojn, la maksimuma valoro estas nur la duono, ĉar la alia duono estas uzata por la negativaj nombroj. Por interesitoj: jen pli detala prezento pri kodado de negativaj nombroj.

Will man auch negative Zahlen kodieren, ist der Maximalwert nur halb so groß, da die andere Hälfte für die negativen Zahlen verwendet wird. Interessierte finden hier eine tiefer gehende Behandlung der Kodierung negativer Zahlen.

5.2 Frakciaj nombroj

5.2 Bruchzahlen

Frakciaj nombroj povas esti kodataj en fiksa-koma aŭ glit-koma reprezento.

Fiksa-komajn nombrojn uzas la komercista (financa) kalkulado, glit-komajn la fiziko. Fiksa-komaj nombroj ne esence diferencas de entjeraj nombroj, sed en komerco oni foje kodas ilin ne en la du-uma, sed en la dek-uma sistemo. (La dek-uma sistemo estas pli agrabla por homoj, sed komputiloj malpli rapide kalkulas en ĝi.) La esprimo "fiksa-koma" signifas, ke la pozicio de la komo (la nombro de la frakciaj pozicioj) estas fiksita kaj ne povas ŝanĝiĝi, ankaŭ se la valoro de la nombro ŝanĝiĝas. Ekzemplo: la nombro 130,17 havas du frakciajn poziciojn; se oni dividas ĝin per 2, la preciza rezulto estus 65,085; sed ĉar estas nur du frakciaj ciferoj, necesas rondigi al 65,09.

En glit-koma nombro la pozicio de la komo povas ŝanĝiĝi. Tiun pozicion indikas parto de la nombro. Glitkoma reprezento do kodas nombrojn per du vicoj de ciferoj:

Bruchzahlen können als Festkommazahlen oder als Gleitkommazahlen kodiert werden.

Festkommazahlen verwendet die kaufmännische Rechnung (Finanzrechnung), Gleitkommazahlen die Physik. Festkommazahlen unterscheiden sich nicht wesentlich von ganzen Zahlen; im kaufmännischen Rechnungswesen werden sie aber häufig nicht im Binärsystem, sondern im Dezimalsystem kodiert. (Das Dezimalsystem ist für Menschen bequemer, aber Computer arbeiten damit langsamer.) Der Ausdruck "Festkomma" bedeutet, dass die Position des Kommas (also die Anzahl der Bruchstellen "hinter dem Komma") fest ist und sich nicht ändern kann, auch wenn sich der Wert der Zahl ändert. Beispiel: Die Zahl 130,17 hat zwei Nachkommastellen; wenn man sie durch 2 teilt, wäre das exakte Ergebnis 65,085; aber da es nur zwei Nachkommastellen gibt, muss auf 65,09 gerundet werden.

Bei Gleitkommazahlen kann sich die Position des Kommas ändern. Diese Position wird durch einen Teil der kodierten Zahl angegeben. Die Gleitkomma-Darstellung einer Zahl besteht also aus zwei Folgen von Ziffern:

  1. La signifikaĵo (aŭ mantiso) – tio estas la vico de la signifikaj ciferoj
  2. La eksponento (aŭ karakteristiko), kiu indikas la lokon de la dekuma komo.

Tiuj du cifervicoj senambigue karakterizas la kodatan nombron. Ili estas memorataj kiel duumaj nombroj. En la supra ekzemplo oni povus kodi la nombron 130,17 per (13017;2); post divido per 2 la rezulto estus (65085;3), rondigata al (6509;2).

Ekzemploj (dekumaj):

  1. Der Signifikand (auch die Mantisse genannt) – das ist die Folge den signifikanten (bedeutsamen) Ziffern;
  2. Der Exponent (auch die Charakteristik genannt) gibt die Position des Dezimalkommas an.

Diese beiden Ziffernfolgen charakterisieren die kodierte Zahl eindeutig. Sie werden als binäre Zahlen gespeichert. Im obigen Beispiel könnte man die Zahl 130,17 durch das Zahlenpaar (13017;2) kodieren; nach der Teilung durch 2 wäre das Ergebnis (65085;3), es wird zu (6509;2) gerundet.

Beispiele (dezimal):

signifikaĵoeksponento
SignifikandExponent
123,4567 -> 12345670 +3
0,001234567 -> 12345670 −2
456 * 10 28 -> 45600000 30
0,23 * 10 -7 -> 23000000 −7

Por interesitoj: jen pli detala priskribo.

Inter la aplikoj de fiksa-komaj kaj glit-komaj nombroj estas grava diferenco:

  • La adiciado de fiksa-komaj nombroj estas ekzakta, sed ilia multiplikado povas facile transiri la maksimuman reprezenteblan valoron. Ili estas kutime uzataj en libro-tenado (komerco), kie oni malmulte multiplikas, sed ekzakteco estas tre grava.
  • La adiciado de glit-komaj nombroj ne estas tute ekzakta, se oni adicias nombrojn de tre malsama grandeco. Aliflanke eĉ multiplikado ne facile transiras la maksimuman valoron. Tiuj nombroj estas uzataj de natur-sciencistoj, kiuj kalkulas per nombro de malsamaj grandecoj kaj ofte multiplikas.

Interessierte finden hier eine eingehendere Beschreibung (in Esperanto).

Zwischen der Verwendung von Festkomma- und von Gleitkommazahlen gibt es einen wichtigen Unterschied:

  • Bei Festkommazahlen ist die Addition exakt, aber die Multiplikation überschreitet leicht die größte darstellbare Zahl (Darstellungsbereich). Festkommazahlen werden vielfach im kaufmännischen Bereich (Finanzen) verwendet, wo wenig multipliziert wird, aber die Genauigkeit sehr wichtig ist.
  • Die Addition von Gleitkommazahlen ist nicht vollkommen exakt, wenn unterschiedlich große Zahlen addiert werden. Andererseits überschreitet das Ergebnis einer Multiplikation nicht leicht den Maximalwert. Gleitkommazahlen werden in der Naturwissenschaft eingesetzt, wo man mit Zahlen unterschiedlicher Größenordnung rechnet und viel multipliziert.

Specimenaj demandoj

  • Kiel diferencas entjeraj kaj frakciaj nombroj?
  • Kiel diferencas fiksa-komaj kaj glit-komaj nombroj?
  • Kiel nomiĝas la du partoj de glit-koma nombro?
  • Kiun specon de frakciaj nombroj prefere uzas komercistoj?
  • Kiun specon de frakciaj nombroj prefere uzas fizikistoj?

Beispielfragen

  • Wie unterscheiden sich ganze Zahlen und Bruchzahlen?
  • Wie unterscheiden sich Festkommazahlen und Gleitkommazahlen?
  • Wie heißen die beiden Teile einer Gleitkommazahl?
  • Welche Art von Bruchzahlen bevorzugen Kaufleute?
  • Welche Art von Bruchzahlen bevorzugen Physiker?