Class StdByte
StdByte ist eine Hilfsklasse zur Handhabung vorzeichenloser Byte-Werte
(Unsigned Bytes).
Motivation
Java stellt keinen nativen Datentyp für vorzeichenlose Bytes bereit.
Der Datentyp byte ist immer vorzeichenbehaftet und deckt nur den
Wertebereich -128 .. 127 ab.
StdByte simuliert ein vorzeichenloses Byte im Wertebereich
0 .. 255:
- Intern wird der Wert in einem
bytegespeichert. - Beim Lesen wird der Wert korrekt als positiver
int-Wert im Bereich0 .. 255interpretiert. - Die Bitdarstellung entspricht der eines echten vorzeichenlosen Bytes.
- Binärdatenverarbeitung
- Protokoll- und Dateiformate
- Low-Level-Programmierung im Rahmen von Java
Java-Version: 17 oder höher
- Author:
- Karsten Brodmann (kb@punkt-akademie.de)
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
StdByte
Erzeugt einStdByte-Objekt aus einem ganzzahligen Wert.Gültiger Wertebereich
Der übergebene Wert muss im Intervall
0 .. 255liegen (einschließlich).- Parameters:
value- ganzzahliger Wert im Bereich0 .. 255- Throws:
Exception- wennvalueaußerhalb des gültigen Bereichs liegt
-
-
Method Details
-
setValue
Setzt den Wert diesesStdByteanhand einesint-Wertes.Interne Darstellung
Der übergebene
int-Wert wird auf einenbytegecastet und intern gespeichert. Negativebyte-Werte sind dabei zulässig und werden bewusst zur Darstellung des Bereichs128 .. 255genutzt.- Parameters:
value- ganzzahliger Wert im Bereich0 .. 255- Throws:
Exception- wennvaluenicht im Intervall0 .. 255liegt
-
getValue
public int getValue()Liefert den gespeicherten Wert als positive Ganzzahl.Interpretation
Der interne
byte-Wert wird so interpretiert, als handele es sich um ein vorzeichenloses Byte. Das Ergebnis liegt immer im Bereich0 .. 255.- Returns:
- positiver
int-Wert im Bereich0 .. 255
-
toString
Liefert die Bitdarstellung des gespeicherten (vorzeichenlosen) Byte-Wertes.Format
Die Rückgabe besteht aus genau 8 Zeichen (
'0'oder'1'), beginnend mit dem höchstwertigen Bit.Beispiel
new StdByte(5).toString() → 00000101 new StdByte(255).toString() → 11111111
-