Bitmanipulation ?

Frankster

Mitglied
Hi!

Ich hab eine Dezimalzahl (z.B. 256) als Bitdarstellung (100000000)
Jetzt soll am anfang eine 1 hinzugefügt werden:
1100000000 -> 768

Wie geht das am einfachsten ?
 
Hallo!

...musst natürlich schauen, dass du beim hinzufügen einer führenden 1 den int Bereich nicht überschreitest.
Code:
 package de.tutorials;
 
 
 public class BitManipulationExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		int value= 256;
 		//System.out.println(Integer.toBinaryString(value));
 		int highestOneBitValue = Integer.highestOneBit(value);
 		//System.out.println(Integer.toBinaryString(highestOneBitValue));
 		value|=highestOneBitValue << 1;
 		//System.out.println(Integer.toBinaryString(value));
 		System.out.println(value);
 		
 	}
 }

Gruß Tom
 
Danke für die schnelle hilfe, aber irgendwas hats da

BitManipulationExample.java:9: cannot resolve symbol
symbol : method highestOneBit (int)
location: class java.lang.Integer
int highestOneBitValue = Integer.highestOneBit(value);
 
Hallo!
Die Methode gibts erst seit Java 5

Sieht so aus:
Code:
 	public static int highestOneBit(int i) {
 		// HD, Figure 3-1
 		i |= (i >>  1);
 		i |= (i >>  2);
 		i |= (i >>  4);
 		i |= (i >>  8);
 		i |= (i >> 16);
 		return i - (i >>> 1);
 	}

Gruß Tom
 
Zurück