2013-10-25 58 views
-1

作業一次又一次。 我要創建一個程序打印1和二進制數的二進制補碼。 到目前爲止是2S補那朵是否正確?我應該允許輸入,然後在2之前計算1的讚美嗎?這段代碼是否適合2的補碼?

import java.util.Scanner; 
public class BitWiseComplement { 
    public static void main (String [] args) { 

     String a = "1"; 
     String b = "0"; 

     Scanner reader = new Scanner(System.in); 
     String binary; 
     String binary2; 

     System.out.println("Please enter your binary number:"); 
     binary = reader.nextLine(); 

     binary2 = binary.replaceAll(a, b); 

     System.out.println(binary2); 
     } 
    } 
+1

如果我正確地讀這個,它會一直輸出一個'0'字符串。 – Cruncher

+1

我真的懷疑使用這些類型的家庭作業的。 – Holger

回答

-1

嘗試:

String s3=String.format("%4s", 
       Integer.toBinaryString(i1)) 
        .replace(' ', '0') 
        .replace('0' ,'a') 
        .replace('1' ,'0') 
        .replace('a' ,'1'); 

,然後添加一個到它。

0

對於整數的1的補,你可以第一個轉換整數使用Integer類的庫法toBinaryString(),以二進制文件,然後運行一個循環,並轉換1對0,反之亦然。

void firstcomplement(int num) 
{ 
    String binary=Integer.tobinaryString(num); 
    String complement=""; 
    for(int i=0; i<binary.length(); i++) 
    { 
     if(binary.charAt(i)=='0') 
      complement[i] += "1"; 
     if(binary.charAt(i)=='1') 
      complement[i] += "0"; 
    } 

}