# Bitmanipulation ?



## Frankster (1. Oktober 2005)

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 ?


----------



## Thomas Darimont (1. Oktober 2005)

Hallo!

 ...musst natürlich schauen, dass du beim hinzufügen einer führenden 1 den int Bereich nicht überschreitest.

```
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


----------



## Frankster (1. Oktober 2005)

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);


----------



## Thomas Darimont (1. Oktober 2005)

Hallo!
 Die Methode gibts erst seit Java 5

 Sieht so aus:

```
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


----------



## Frankster (1. Oktober 2005)

Danke vielmals!


----------

