Guten Abend zusammen,
ich habe einen HexMaske für eine binäre xor Opertation. Anhand der Maske möchte ich einen Bitshift um die Stellen von Rechts bis zur ersten Eins nach Rechts verschieben.
Vielleicht Anschaulich:
Maske: 0x20 (Binär 10100)
Wert: 11101
Operation
Xor: Maske & Wert = 10100
Shift: Wert >> 2 = 00101
Wichtig in Java ist mir erstmal nur wie ich herausfinde um wieviel Stellen ich den Shift durchführen soll. Momentan mach ich das in etwa so.
Eigentliche Frage, geht das nicht irgendwie eleganter? Insbesonder der Schleifenzähler gefählt mir momentan eher weniger.
Grüße
ich habe einen HexMaske für eine binäre xor Opertation. Anhand der Maske möchte ich einen Bitshift um die Stellen von Rechts bis zur ersten Eins nach Rechts verschieben.
Vielleicht Anschaulich:
Maske: 0x20 (Binär 10100)
Wert: 11101
Operation
Xor: Maske & Wert = 10100
Shift: Wert >> 2 = 00101
Wichtig in Java ist mir erstmal nur wie ich herausfinde um wieviel Stellen ich den Shift durchführen soll. Momentan mach ich das in etwa so.
Java:
String mask = "20";
int maskInt = Integer.parseInt(mask);
mask = Integer.toBinaryString(maskInt);
int lsb = 0;
for(int i = mask.length()-1; i > 0; i --){
if (mask.charAt(i) == '0'){
lsb++;
}else{
break;
}
}
//shift um lsb
Eigentliche Frage, geht das nicht irgendwie eleganter? Insbesonder der Schleifenzähler gefählt mir momentan eher weniger.
Grüße