-1

又是作业时间。我必须创建一个程序来打印二进制数的 1 和 2 补码。到目前为止,2s 恭维是正确的吗?我应该允许输入,然后在 2 之前计算 1 的恭维吗?

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);
        }
    }
4

2 回答 2

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";
    }

 }
于 2015-10-09T20:32:49.530 回答
-1

尝试:

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

然后添加一个。

于 2015-09-08T21:01:17.467 回答