Integer to Byte

Wolfsbein

Erfahrenes Mitglied
Zahl in Bits (Dualzahl) ausgeben

Edit: Denkfehler
Hallo
wie kann ich eine Zahl z.B. 12 in Java konvertieren und mit dem neuen Datentyp auch weiterrechnen?
EDIT: Ich weiß, dass ich mit BitSet den entsprechenden Datentyp habe. Nur habe ich keine Ahnung wie ich eine Int Zahl am saubersten da rein bekomme. Eine Möglichkeit wäre ja die Int Zahl mit %2 herunterzubrechen. Aber das gibts doch bestimmt schon, oder?
 
Zuletzt bearbeitet:
Hallo!

Also ich weis jetzt nicht genau was du eiegntlich willst aber suchst du vielleicht nach
Code:
package de.tutorials;

public class Test05 {

	public static void main(String[] args) {
		int a = 1341241;
		System.out.println(Integer.toBinaryString(a)); //101000111011100111001
		long b = 130912890480L;
		System.out.println(Long.toBinaryString(b));// 1111001111011000001000010111001110000
		float c = 1389.32432F;
		System.out.println(Integer.toBinaryString(Float.floatToIntBits(c))); //1000100101011011010101001100001
		double d = 13124132.1231231;
		System.out.println(Long.toBinaryString(Double.doubleToLongBits(d))); //100000101101001000010000100010010000011111100001001111111011011
	}
}

Gruß Tom
 
Vielen Dank für Dein Beispiel, aber das ist es nicht ganz. Ich werds mir aber für die Zukunft merken. Ich machs jetzt so:
Code:
    /**
     * intToBitset setzt die Bits die den Int Parameter x represäntieren im 
     * zurückgegebenen BitSet.
     * @author Mathias Wagner
     * @param x
     * @return
     */
    private BitSet intToBitset(int x) {
        
        BitSet bs = new BitSet();
        int result, counter = 0;
        boolean stopCond = false;
        
        // Int Zahl herunterbrechen und bei % 2 == 1 im BitSet schreiben
        do {
            result = x % 2;
            x = x / 2;
            if (x < 1) stopCond = true;
            if(result == 1) bs.set(counter);
            counter++;
        } while (stopCond == false);
        
        return bs;
    }
 
Also wäre folgendes dann auch Korrekt?
Code:
import java.util.BitSet;

public class Test06 {

	public static void main(String[] args) {
		int a = 12432132;
		BitSet bs = new BitSet();
		String bitStr = Integer.toBinaryString(a);
		int len = bitStr.length();
		for (int i = 0; i < len; i++)
			if (bitStr.charAt(i) == '1')
				bs.set(i);
			
		System.out.println(bitStr);
		int bLen = bs.length();
		for(int i = 0; i <bLen;i++)
			System.out.print(bs.get(i) ? 1 : 0);
	}
}

Gruß Tom
 
Deine Varainte ist natürlich schneller, da bei mener implizit bei jedem Methoden aufruf erstmal noch zusätzlich ein neues String Objekt gebaut wird.

Gruß Tom
 
Zurück