2016-05-13 9 views
1

Ich möchte eine Zeichenfolge, die aus 8 Binärzahlen besteht, in ein Byte konvertieren. Ich habe diese Methode versucht:Java | Binär String zu Byte

byte b = Byte.parseByte(s, 2); 

der gut arbeitet, wenn die Zeichenfolge ist „00000000“, aber funktioniert nicht, wenn es „11111111“ ist.

Ich vermute, dass etwas mit dem Radix zu tun hat, aber ich kann es nicht herausfinden.

Antwort

1
  1. Verwenden Integer.parseInt mit einem Radix von 2 wie diese Integer.parseInt("11111111", 2)
  2. Dann, wenn Sie es wirklich wollen, als ein byte einfach die ganze Zahl in eine byte wie diese werfen (byte) intValue

So ist der vollständige Code ist :

System.out.println((byte) Integer.parseInt("11111111", 2)); 

Ausgang:

-1 

NB: Warum -1? Weil byte eine vorzeichenbehaftete ganze Zahl von 8 Bits ist, die von -128 zu 127 geht, also hier anstatt 255, erhalten Sie -1.