java: Integer Wert als binären Wert anzeigen

Helios co.

Lt. Commander
Dabei seit
März 2005
Beiträge
1.863
Hallo,

ich habe folgende Frage:

Integer Werte werden doch intern binär gespeichert..oder?
Gibt es dann auch eine Möglichkeit diese nicht als dezimal-Wert sondern als binären Wert ausgeben zu lassen?

Ich weiss wie man einen Intwert zu einem binären Wert mittels toBinaryString und danach mit parseInt zu einem binären Intwert umwandeln kann.

Ich kann in meinem fall jedoch keinen String benutzen...

Hat jemand einen Vorschlag?

MfG
Andi
 

Helios co.

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2005
Beiträge
1.863
Hmm vielleicht anders gefragt:

Ich habe folgenden Integer Wert:

int zwischen = 0xffffffff;

anschliessende möchte ich einen binären Wert draus machen:

String aaa = Integer.toBinaryString(zwischen);

und dann wieder ien Int:

zwischen = Integer.parseInt(aaa);

Wenn ich das anzeigen lasse bekomme ich folgendes:
11111111111111111111111111111111
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "11111111111111111111111111111111"
.
.
.

Woran liegt dieser Fehler, am Vorzeichen oder der Länge des binären Wertes???
 

lynxx

Lt. Junior Grade
Dabei seit
Feb. 2005
Beiträge
428
Verstehe ich nicht, wieso kannst Du keinen String für die Ausgabe verwenden ?

Rein als Zahl fallen ja die führenden nullen weg, also würde das dann so aussehen:
1=%1
2=%10
3=%11
4=%100
etc ..

erklär doch mal genauer was Du eigentlich machen willst.

Edit:

Zum zweiten post, ja - die Zahl ist zu lang.

2nd Edit:

Ich nehme an Du willst die Binär-Zahl wieder als "normale" Int haben ?
Dann verwende einfach zusätzlich die Option radix bei parseInt, also im Fall von Binärwerten:

zwischen = Integer.parseInt(aaa, 2); // Radix = 2 (nur 0 und 1 möglich)

3rd Edit:
Das selbe gibt es auch für Integer.toString, also z.B:
String strOct = Integer.toString(iZahl, 8); // Oktal
String strHex = Integer.toString(iZahl, 16); // Hexadezimal
etc pp. 8-)
 
Zuletzt bearbeitet:

Helios co.

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2005
Beiträge
1.863
Sorry, habe mich wirklich nicht sehr präzise ausgedrückt!

Mein Ziel ist es einen Farbwert, der sich ja aus den Werten rot grün blau zusammensetzt
(mit einem Dezimalwert von jeweils 0..255) zunächst in einen binären Wert umzuwandeln und dann in die binäre Form:

Alphawert Rot Grün Blau zu bringen

das sind nunmal 32 bit oder auch 4 byte.
Meine Idee dafür ist, dass ich einen 32 bit langen binären Wert habe, der nur aus Nullen besteht und ich dann zunächst den Alphawert mittels OR reindrücke und an die richtige position shifte usw..

Mit diesem Wert muss ich dann weiterarbeiten. Dabei muss er aber als Integer und nicht als String vorliegen.

Leider gibt es zu diesem Thema, und wie Java mit binären Werten umgeht, nicht viel im Netz und auch die Literatur hält sich eher bedeckt...was man findet, ist das Verhalten von bitweisen Operatoren...aber damit wärs dann auch schon.

Ich hoffe, dass das mein Problem besser erklärt...
 

Loopo

Admiral
Dabei seit
Juli 2002
Beiträge
7.617
Du kannst doch Bitoperationen auch auf Integer anwenden! :rolleyes:
 

lynxx

Lt. Junior Grade
Dabei seit
Feb. 2005
Beiträge
428

Helios co.

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2005
Beiträge
1.863
Ach verdammt, das Naheliegendste sieht man (ich) nie.

Danke für die Hilfe!
 
Top