Byte "Bit" - array
Ein byte ist die kleinste numerische Datentyp java bietet aber gestern kam ich in Kontakt mit bytestreams für das erste mal und am Anfang von jedem Paket ein marker-byte senden Sie die gibt weitere Anweisungen zum Umgang mit dem Paket. Jedes bit des Bytes hat eine Besondere Bedeutung, also ich bin in der Notwendigkeit zu verwickeln, das byte zu 8 bits.
Du wahrscheinlich konvertieren konnte das byte in ein boolean-array oder eine switch erstellen, für jeden Fall aber das kann sicherlich nicht die beste Praxis.
Wie ist das möglich, in java warum gibt es kein bit-Datentypen in java?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da es keine bit-Datentyp, gibt es auf dem physischen computer. Die kleinste Kleingartenanlage, die Sie zuordnen können, die auf den meisten modernen Computern ist ein byte, das ist auch bekannt als ein Byte oder 8 bits. Wenn Sie ein einzelnes bit du eigentlich nur ziehen, dass erste bit aus dem byte mit arithmetischen und hinzufügen, um einen neuen byte-welcher noch mit einem 8-byte-Raum. Wenn Sie wollen, um bit-Daten in ein byte-Sie können aber gespeichert werden, als zumindest eine einzelne byte-egal, welche Programmiersprache Sie verwenden.
Könnten Sie lädt das byte in ein BitSet. Diese Abstraktion verbirgt sich die blutigen details der Manipulation einzelner bits.
Können Sie Fragen, für jede etwas, aber die Länge sagt dir, dass alle bits Vergangenheit
length() - 1
eingestellt sind0
(false):Haben Sie einen Blick auf java.util.BitSet.
Sie könnten es verwenden, um zu interpretieren, das byte gelesen und kann die get-Methode, um zu überprüfen, ob ein bestimmtes bit gesetzt ist wie hier:
Auf der anderen Seite, können Sie erstellen Sie Ihre eigenen Bitmaske leicht und konvertiert Sie zu einem byte-array (oder byte -) danach:
How is this possible in java why are there no bit datatypes in java?
Gibt es keine bit-Datentypen in die meisten Sprachen. Und die meisten CPU instruction sets haben nur wenige (wenn überhaupt) Anweisungen gewidmet Adressierung einzelner bits. Sie können denken, der Mangel an diesen, die als ein trade-off zwischen (Sprache oder CPU) Komplexität und Notwendigkeit.
Manipulation einer single etwas werden kann, obwohl der als ein besonderer Fall der Manipulation mehrere bits; und Sprachen, als auch CPU ' s ausgestattet sind, für die letzteren.
Sehr Häufig gebrauchte Operationen, wie Tests, festlegen, löschen, invertieren, sowie exklusiv-oder-sind alle unterstützt, die auf den ganzzahligen primitiven Datentypen (byte, short/char, int, long), die auf alle bits der Typ auf einmal. Durch die Auswahl der Parameter appropiately Sie können wählen Sie die bits, um den Betrieb auf.
Wenn Sie darüber nachdenken, ein byte-array ist ein bit-array, in dem die bits gruppiert sind, in Packungen von 8. Adressierung eines einzelnen Bits in das array ist relativ einfach mit Hilfe von logischen Operatoren (AND
&
ODER|
XOR -^
und NICHT~
).Beispielsweise testen, ob das bit N gesetzt ist, die in einem byte kann durchgeführt werden, indem ein logisches UND mit der Maske, wo nur die bit-geprüft, set:
Ausweitung auf ein byte-array ist keine Magie entweder, jedes byte besteht aus 8 bits, also der byte-index ist einfach die bit-Zahl durch 8 geteilt, und die bit-Nummer innerhalb dieses byte ist der Rest (modulo 8):