Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Exceptions
7 Äußere.innere Klassen
8 Besondere Klassen der Java SE
9 Generics<T>
10 Architektur, Design und angewandte Objektorientierung
11 Die Klassenbibliothek
12 Einführung in die nebenläufige Programmierung
13 Einführung in Datenstrukturen und Algorithmen
14 Einführung in grafische Oberflächen
15 Einführung in Dateien und Datenströme
16 Einführung in die <XML>-Verarbeitung mit Java
17 Einführung ins Datenbankmanagement mit JDBC
18 Bits und Bytes und Mathematisches
19 Die Werkzeuge des JDK
A Die Klassenbibliothek
Stichwort

Download:
- Aufgaben, ca. 1,1 MB
- Programme, ca. 12,8 MB

Buch bestellen
Ihre Meinung?

Spacer
Java ist auch eine Insel von Christian Ullenboom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
Galileo Computing
1308 S., 10., aktualisierte Auflage, geb., mit DVD
ca. 49,90 Euro, ISBN 978-3-8362-1802-3
Pfeil 18 Bits und Bytes und Mathematisches
Pfeil 18.1 Bits und Bytes *
Pfeil 18.1.1 Die Bit-Operatoren Komplement, Und, Oder und Xor
Pfeil 18.1.2 Repräsentation ganzer Zahlen in Java – das Zweierkomplement
Pfeil 18.1.3 Das binäre (Basis 2), oktale (Basis 8), hexadezimale (Basis 16) Stellenwertsystem
Pfeil 18.1.4 Auswirkung der Typanpassung auf die Bitmuster
Pfeil 18.1.5 byte als vorzeichenlosen Datentyp nutzen
Pfeil 18.1.6 Die Verschiebeoperatoren
Pfeil 18.1.7 Ein Bit setzen, löschen, umdrehen und testen
Pfeil 18.1.8 Bit-Methoden der Integer- und Long-Klasse
Pfeil 18.2 Fließkommaarithmetik in Java
Pfeil 18.2.1 Spezialwerte für Unendlich, Null, NaN
Pfeil 18.2.2 Standard-Notation und wissenschaftliche Notation bei Fließkommazahlen *
Pfeil 18.2.3 Mantisse und Exponent *
Pfeil 18.3 Die Eigenschaften der Klasse Math
Pfeil 18.3.1 Attribute
Pfeil 18.3.2 Absolutwerte und Vorzeichen
Pfeil 18.3.3 Maximum/Minimum
Pfeil 18.3.4 Runden von Werten
Pfeil 18.3.5 Wurzel- und Exponentialmethoden
Pfeil 18.3.6 Der Logarithmus *
Pfeil 18.3.7 Rest der ganzzahligen Division *
Pfeil 18.3.8 Winkelmethoden *
Pfeil 18.3.9 Zufallszahlen
Pfeil 18.4 Genauigkeit, Wertebereich eines Typs und Überlaufkontrolle *
Pfeil 18.4.1 Behandlung des Überlaufs
Pfeil 18.4.2 Was bitte macht ein ulp?
Pfeil 18.5 Mathe bitte strikt *
Pfeil 18.5.1 Strikte Fließkommaberechnungen mit strictfp
Pfeil 18.5.2 Die Klassen Math und StrictMath
Pfeil 18.6 Die Random-Klasse
Pfeil 18.6.1 Objekte mit dem Samen aufbauen
Pfeil 18.6.2 Zufallszahlen erzeugen
Pfeil 18.6.3 Pseudo-Zufallszahlen in der Normalverteilung *
Pfeil 18.7 Große Zahlen *
Pfeil 18.7.1 Die Klasse BigInteger
Pfeil 18.7.2 Methoden von BigInteger
Pfeil 18.7.3 Ganz lange Fakultäten
Pfeil 18.7.4 Große Fließkommazahlen mit BigDecimal
Pfeil 18.7.5 Mit MathContext komfortabel die Rechengenauigkeit setzen
Pfeil 18.8 Zum Weiterlesen

Rheinwerk Computing - Zum Seitenanfang

18.5 Mathe bitte strikt *Zur nächsten Überschrift

Bei der Berechnung mit Fließkommazahlen schreibt die Definition des IEEE 754-Standards vor, wie numerische Berechnungen durchgeführt werden. Damit soll die CPU/FPU für float und double mit 32 beziehungsweise 64 Bit rechnen. In Wirklichkeit rechnet jedoch so gut wie kein mathematischer Prozessor mit diesen Größen, außer vielleicht AMD mit der 3Dnow!-Technologie. Auf der PC-Seite kommen Intel und AMD mit internen Rechengenauigkeiten von 80 Bit, also 10 Byte, zum Zuge. Dieses Dilemma betrifft aber nur 80x86- und andere CISC-Prozessoren. Bei RISC sind 32 Bit und 64 Bit das Übliche. Die 80-Bit-Lösung bringt in Java zwei Nachteile mit sich:

  • Diese Genauigkeit kann Java bisher nicht nutzen.
  • Wegen der starren IEEE 754-Spezifikation kann der Prozessor weniger Optimierungen durchführen, weil er sich immer eng an die Norm halten muss. Das kostet Zeit. Gegebenenfalls können aber die mathematischen Ergebnisse auf unterschiedlichen Maschinen anders aussehen.

Rheinwerk Computing - Zum Seitenanfang

18.5.1 Strikte Fließkommaberechnungen mit strictfpZur nächsten ÜberschriftZur vorigen Überschrift

Damit zum einen die Vorgaben der Norm erfüllt werden und zum anderen die Geschwindigkeit gewährleistet werden kann, lässt sich vor Klassen und Methoden der Modifizierer strictfp setzen, damit Operationen strikt nach der IEEE-Norm vorgehen. Ohne dieses Schlüsselwort (wie es also für die meisten unserer Programme der Fall ist) nimmt die JVM eine interne Optimierung vor. Nach außen bleiben die Datentypen 32 Bit und 64 Bit lang, das heißt: Bei den Konstanten in double und float ändert sich nichts. Zwischenergebnisse bei Fließkommaberechnungen werden aber eventuell mit größerer Genauigkeit berechnet.


Rheinwerk Computing - Zum Seitenanfang

18.5.2 Die Klassen Math und StrictMathZur vorigen Überschrift

Für strikte mathematische Operationen gibt es eine eigene Klasse StrictMath. An der Klassendeklaration für StrictMath lässt sich ablesen, dass alle Methoden sich an die IEEE-Norm halten.

Listing 18.9: java.lang.StrictMath.java, StrictMath

public final strictfp class StrictMath {
// ...
}

Allerdings gibt es nicht zwei Implementierungen der mathematischen Methoden – einmal strikt und genau beziehungsweise einmal nicht strikt, dafür potenziell schneller. Bisher delegiert die Implementierung für Math direkt an StrictMath:

Listing 18.10: java.lang.Math.java, Ausschnitt

public final strictfp class Math
{
public static double tan( double a ) {
return StrictMath.tan( a );
// default impl. delegates to StrictMath
}
// ...
}

Die Konsequenz ist, dass alle Methoden wie Math.pow() strikt nach IEEE-Norm rechnen. Das ist zwar aus Sicht der Präzision und Übertragbarkeit der Ergebnisse wünschenswert, aber die Performance ist nicht optimal.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Java SE Bibliotheken






 Java SE Bibliotheken


Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Einstieg in Eclipse






 Einstieg in
 Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in
 Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de