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 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Exceptions
7 Generics<T>
8 Äußere.innere Klassen
9 Besondere Klassen der Java SE
10 Architektur, Design und angewandte Objektorientierung
11 Die Klassenbibliothek
12 Bits und Bytes und Mathematisches
13 Datenstrukturen und Algorithmen
14 Threads und nebenläufige Programmierung
15 Raum und Zeit
16 Dateien, Verzeichnisse und Dateizugriffe
17 Datenströme
18 Die eXtensible Markup Language (XML)
19 Grafische Oberflächen mit Swing
20 Grafikprogrammierung
21 Netzwerkprogrammierung
22 Verteilte Programmierung mit RMI
23 JavaServer Pages und Servlets
24 Datenbankmanagement mit JDBC
25 Reflection und Annotationen
26 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Java ist auch eine Insel von Christian Ullenboom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
geb., mit DVD
1482 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1506-0
Pfeil 12 Bits und Bytes und Mathematisches
  Pfeil 12.1 Bits und Bytes *
    Pfeil 12.1.1 Die Bit-Operatoren Komplement, Und, Oder und Xor
    Pfeil 12.1.2 Repräsentation ganzer Zahlen in Java – das Zweierkomplement
    Pfeil 12.1.3 Auswirkung der Typanpassung auf die Bitmuster
    Pfeil 12.1.4 »byte« als vorzeichenlosen Datentyp nutzen
    Pfeil 12.1.5 Die Verschiebeoperatoren
    Pfeil 12.1.6 Ein Bit setzen, löschen, umdrehen und testen
    Pfeil 12.1.7 Bit-Methoden der Integer- und Long-Klasse
  Pfeil 12.2 Fließkommaarithmetik in Java
    Pfeil 12.2.1 Spezialwerte für Unendlich, Null, NaN
    Pfeil 12.2.2 Standard-Notation und wissenschaftliche Notation bei Fließkommazahlen *
    Pfeil 12.2.3 Mantisse und Exponent *
  Pfeil 12.3 Die Eigenschaften der Klasse Math
    Pfeil 12.3.1 Attribute
    Pfeil 12.3.2 Absolutwerte und Vorzeichen
    Pfeil 12.3.3 Maximum/Minimum
    Pfeil 12.3.4 Runden von Werten
    Pfeil 12.3.5 Wurzel und Exponentialmethoden
    Pfeil 12.3.6 Der Logarithmus *
    Pfeil 12.3.7 Rest der ganzzahligen Division *
    Pfeil 12.3.8 Winkelmethoden *
    Pfeil 12.3.9 Zufallszahlen
  Pfeil 12.4 Mathe bitte strikt *
    Pfeil 12.4.1 Strikte Fließkommaberechungungen mit strictfp
    Pfeil 12.4.2 Die Klassen Math und StrictMath
  Pfeil 12.5 Die Random-Klasse
    Pfeil 12.5.1 Objekte aufbauen mit dem Samen
    Pfeil 12.5.2 Zufallszahlen erzeugen
    Pfeil 12.5.3 Pseudo-Zufallszahlen in der Normalverteilung *
  Pfeil 12.6 Große Zahlen *
    Pfeil 12.6.1 Die Klasse BigInteger
    Pfeil 12.6.2 Methoden von BigInteger
    Pfeil 12.6.3 Ganz lange Fakultäten
    Pfeil 12.6.4 Große Fließkommazahlen mit BigDecimal
    Pfeil 12.6.5 Mit MathContext komfortabel die Rechengenauigkeit setzen
  Pfeil 12.7 Zum Weiterlesen


Rheinwerk Computing - Zum Seitenanfang

12.4 Mathe bitte strikt *  Zur nächsten ÜberschriftZur vorigen Ü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

12.4.1 Strikte Fließkommaberechungungen mit strictfp  Zur 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

12.4.2 Die Klassen Math und StrictMath  topZur 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 12.7  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 12.8  java.lang.Math.java, Math

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
 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