BitSet und ByteArray

Fohnbit

Top Contributor
Hallo!

Ich habe ein byte Array. Ebenso habe ich die Angabe "from" und "size":
from: startpunkt des Bits
size: anzahl der Bits.

Ich muss also aus einem ByteArray einen Wert holen, welcher durch die Bitpositionen angegeben wird:

Java:
			byte[] testByte = new byte[4];
		testByte[0] = 0x00;
		testByte[1] = (byte) 0x85;
		testByte[2] = 0x6b;
		testByte[3] = 0x0f;
System.out.println(getValueFromByteArray(testByte, 8, 16));

		

	}

	private static int getValueFromByteArray(byte[] byteArray, int from,
			int size) {

		// Leeres Bitset mit der Größe von size anlegen
		BitSet vBs = new BitSet(size - 1);

		// Leeres Bitset anlegen und dann aus dem ByteArray füllen
		BitSet aBs = new BitSet();
		aBs = BitSet.valueOf(byteArray);

		// Bits vom ByteArray aufs leere Bitset übertragen
		for (int i = from; i < (from + size); i++) {
			if (aBs.get(i)) {
				vBs.set(i - from);
				i = aBs.nextSetBit(i);
			}
		}

		// Kontrolle
		System.out.println(vBs);

		int value = 0;
		int pow = 1;
		// auf Integer umrechnen
		for (int i = 0; i < (from + size); i++, pow <<= 1) {
			if (vBs.get(i)) {
				value |= pow;
			}
		}
		return value;
	}

Nun habe ich 2 Probleme:
BitSet nimmt das Byte Aray "verkehrt" herum:
0x00 0x85 0x6b 0x0f

bei meinen Angaben ist 0x00 die Position 0.
beim BitSet jedoch Pos 4

1. Frage
Kann ich das Array irgendwie "umdrehen"? Das BitSet soll 0x0f als höchstes Byte nehmen. Denk es hat mit Little Endian und Big Endian zu tun?

2. Frage
GIbt eventuell einen eleganteren Weg das Ziel zu erreichen?

3. Frage
Warum greift die Zuorndung der Schleifenvariable nicht: i = aBs.nextSetBit(i);

Vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D BitSet verständinsprobleme Java Basics - Anfänger-Themen 1
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
F BitSet problem Java Basics - Anfänger-Themen 7
G BitSet() in Methoden übergeben. Java Basics - Anfänger-Themen 2
W Fehler bei einem BitSet in einem Objekt Java Basics - Anfänger-Themen 2
H toString(); varargs; bitSet Java Basics - Anfänger-Themen 8
G Klasse BitSet Java Basics - Anfänger-Themen 2
C Bytearray senden via SerialPort Java Basics - Anfänger-Themen 7
T udp -> bytearray -> image -> ausgabe via frame Java Basics - Anfänger-Themen 6
R Datentypen ByteArray aus einer .class erzeugen Java Basics - Anfänger-Themen 3
C Bytearray unkonvertiert ausgeben Java Basics - Anfänger-Themen 4
G String [HEX] To ByteArray Java Basics - Anfänger-Themen 12
G bytearray als Datei speichern? Java Basics - Anfänger-Themen 6
K Bytearray durchsuchen! Java Basics - Anfänger-Themen 6
T Bytearray: immer 4 Bytes herrauskopieren, bis fertig ! Java Basics - Anfänger-Themen 9
R Integer in ByteArray Java Basics - Anfänger-Themen 11
R String in ByteArray suchen Java Basics - Anfänger-Themen 9
T JDOM - Document build aus byteArray? Java Basics - Anfänger-Themen 5
J String to ByteArray Java Basics - Anfänger-Themen 5
G XML als byteArray generieren Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben