Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Effiziente Bitmanipulation und -speicherung in Java

Auch wenn wir heutzutage oft nicht mehr mit individuellen Bits zu tun haben, lauern sie doch direkt unter der Oberfläche unserer Programme. Zum Beispiel sind die seltsamen Ergebnisse bei Gleitkommazahlen damit zu erklären, wie sie als Exponent und Mantisse in den 16, 32 (float) oder 64 Bit (double) abgelegt werden und welche Zahlen damit ausdrückbar sind (0.01f*0.03f = 2.9999999E-4).

Leider ist es in Java nicht einfach möglich, Booleans statt Bits zu benutzen, da für das Speichern eines Booleschen Werts noch immer ein ganzes Byte benutzt wird, in den frühen Versionen von Java war es sogar ein Integer mit 4 Bytes. Wie Booleans zu repräsentieren sind, ist in der Spezifikation der VM nicht vorgegeben, verschiedene JVM-Anbieter könnten das unterschiedlich handhaben. Damit wird mindestens achtmal so viel Speicher verbraucht, wie für einen Wahrheitswert benötigt würde. Ein Grund …