2016-03-19 2 views
0

Ich habe zwei Saiten in folgendem Format:Wie erhält man das ODER-Verknüpfungsergebnis von binär dargestellten Strings?

"11010" 
"00101" 

Beide sind binäre Darstellungen. Ich möchte OR diese Zahlen und das Ergebnis wie folgt:

"11111" 

Jede Idee, wie es mit Java zu tun bekommen?

Upadte:

Dies ist kein Duplikat der genannten Frage. Ich bin die Durchführung OR-Operator auf binäre Zahl in String-Format dargestellt

+0

http://stackoverflow.com/questions/8548586/adding-binary-numbers –

+0

Sie benötigen einen Code zu schreiben. Es gibt so viele Möglichkeiten, dies zu tun. Ich schlage vor, dass Sie eine Schleife verwenden und eine neue Zeichenfolge erstellen. –

+1

Konvertieren Sie sie in int, verwenden Sie binäre Operatoren, konvertieren Sie das Ergebnis zurück in Binärzeichenfolge. 'Integer.parseInt (val, radix)' 'Integer.toString (val, radix)' kann hilfreich sein. – Pshemo

Antwort

2

können Sie die Methode Integer.parse verwenden

int x1 = Integer.parseInt("11010", 2); 
int x2 = Integer.parseInt("00101", 2); 
int val = x1 | x2; 
String binOr = Integer.toBinaryString(val); 
+2

Mit unterschiedlichen Eingaben kann die resultierende Zeichenfolge kürzer als die Eingabe werden, indem führende Nullen gelöscht werden. (Das ist nicht falsch, nur etwas zu beachten) – harold

1

Es gibt so viele offensichtlichen Möglichkeiten, wie zum Beispiel zu einem BigInteger Umwandlung oder String-Manipulation, aber diese ist eine weniger offensichtliche, die Sie natürlich nicht als Ihre eigenen Hausaufgaben weitergeben können, aber Sie könnten etwas lernen.

public static String or(String a, String b) { 
    assert a.length() == b.length(); 
    char[] ac = a.toCharArray(); 
    for(int i = 0; i < ac.length; i++) 
     ac[i] |= b.charAt(i); 
    return new String(ac); 
} 

Ich überlasse es als Übung für Sie herauszufinden, warum das funktioniert. ;)

1

die Sie interessieren durch die Integer-Klasse:

public static void main(String[] args) { 
    // "11010" "00101" 

    // 1. parse the strings to integer 
    final int nibble1 = Integer.parseInt("11010", 2); 
    final int nibble2 = Integer.parseInt("00101", 2); 
    // 2. make the bitwise operation and bulk the result in the int result 
    final int result = nibble1 | nibble2; 
    // print the result as integer 
    System.out.println(result); 
    // or print it as binary 
    System.out.println(Integer.toBinaryString(result)); 
} 
Verwandte Themen