Bit-Zerlegung

0f3nfb

Mitglied
Ein int-Wert soll in Bytes zerlegt werden. Dabei gibt es eine maximale Bytegröße.

Beispiel:

int zahl = 65
maximale Bytegröße: 3 bit

65 ist binär 001000001
dann ergibt sich:

Byte0 = 001;
Byte1 = 000;
Byte2 = 001;

Verwenden möchte ich das innerhalb der Realisierung einer universellen Hashfunktion.
Weiß jemand Rat? :)
 

0f3nfb

Mitglied
na wie ich das hinbekomme wie in dem Beispiel;)

65 soll aufgeteilt werden in Bytes dessen Länge aber variable beschränkbar sein soll

byte b[] = new byte[3]
b[0] enthält dann 001 oder eben 0x1
b[1] enthält 0
...
 

Marco13

Top Contributor
Wie wo und wann wird die "byte"länge festgelegt? So ist's erstmal einfach
Java:
int v = 65;
for (int s=0; s<etwa(32/3); s+=3)
{
    byte b = (v >> s) & 0x3;
}
Wenn die 3 zur Compilezeit nicht feststeht muss man ein bißchen basteln. GANZ einfach geht es grundsätzlich mit BitSet (Java Platform SE 6) - kannst ja mal schauen, ob das für dich OK ist...
 

Oben