Ich brauche bestimmte Bit zu extrahieren reicht von mit einem langen Wert, zum Beispiel:Java erhält Bit reicht von einer langen
long input = 15367 (11110000000111)
Was muß ich dann tun ist, zwei lange Werte aus der ursprünglichen lange zu extrahieren,
First long is 5 bits starting from bit 0, so bits 0:4 = 7 (0111)
Second long is 56 bits starting from bit 8, so bits 7:55 = 60 (1111000)
ich weiß, das mit Bitverschiebung und Maskierung durchgeführt werden kann, aber ich bin nicht ganz sicher, wie das zu implementieren, so dass es jedes Mal dynamisch ist, wie jedes Mal, wenn ich dies tun müssen, wird die lange unterschiedlich sein und auch die spezifischen Bitbereiche.
Ich habe gelesen über BitSets und BitArrays, aber ich bin nicht ganz sicher, dass dies die richtigen Dinge für den Job sind.
Jeder Rat auf dem besten Weg, dies zu implementieren, würde sehr geschätzt werden.
Danke!
einfach das Ticket dank fge sagen könnte! – Tony
Würde '' '' auch nicht so gut funktionieren, weil das '&' am Ende die erweiterten Zeichen '1' entfernt? (Eckfall zu Ihren Gunsten: Sie extrahieren Bits außerhalb der äußersten linken Grenzen Ihrer Eingabe, z. B. nrBits = 32, offset> 32) – zapl
Nein, würde es nicht. Sagen Sie (mit 8 Bits zu vereinfachen), dass Sie '10001111' haben und drei Bits ab Offset 3 extrahieren wollten: Wenn Sie' >>> 'verwenden, ergibt die rechte Verschiebung' 00010001', aber mit '>>' würde es Gib '11110001' (das Vorzeichenbit wird übertragen). – fge