2016-03-29 8 views
0

Dies ist mein Codewie eine Zahl in ihre 2 Kompliment in Java konvertieren

String st; 
for (int x : comp) { 


st = Integer.toBinaryString(x); 


System.out.println("BINARY"+st); 
} 

hier comp ein Integer-Array ist und ich versuche, das binäre String zu erhalten. Aber ich möchte die zwei Kompliment der Zahlen in der comp-Array berechnen. kann ich jede mögliche Weise dafür bekommen ..

Antwort

0

Hier finden Sie eine Methode zu 2 Kompliment haben eine binäre String in Java

public static String compliment2(String s) { 
    char[] arr = s.toCharArray(); 
    boolean change = false; 
    for (int i = arr.length-1; i >= 0; i--) { 
     if (change) { 
      if (arr[i] == '1') arr[i] = '0'; 
      else arr[i] = '1'; 
     } 
     else if (arr[i] == '1') change = true; 
    } 
    return new String(arr); 
} 

Was Sie tun, ist von rechts zu lesen alle Bits nach links. Sobald Sie die erste '1' gefunden haben, müssen Sie den Rest der Bits nach links tauschen.

0

Verwenden Sie den ~ unary-Operator, da dies eine bitweise Negation ist. Danach müssen Sie 1.

int foo = 117; 
food = ~foo + 1; 

2 Komplement = 1 Ergänzung +1

hinzufügen
Verwandte Themen