0

我确实知道如何在纸上做到这一点。问题是当我在代码上做的时候。我收到此错误:

不兼容的类型:从 int 到 byte 的可能有损转换

我知道我的二进制数被保存在一个字符串中,我想将那些 0 更改为 1,反之亦然,这就是为什么我有 if

这是我的代码:

import java.util.Scanner:

Public class decimalacomplemento1 {

    public static void main(String[] ar){
       Scanner decimal = new Scanner(System.in);
       int dividendo, base = 2, numero, resto;
       String binario = "";
       System.out.println("Ingrese numero");
       numero = decimal.nextInt();
       dividendo = numero;

       while(dividendo >= base){ 
                resto = dividendo % base; 
               binario = resto + binario; 
               dividendo = dividendo/base; 
       }
       binario = dividendo + binario; // el numero binario


       if (binario == 0) {
              binario = 1;
       }else{
              binario = 0;
       }

       System.out.println("En sistema binario " + numero + " se escribe " +     binario);
   }
}
4

1 回答 1

0

要在整个字符串中将 0 反转为 1,反之亦然,您可以执行以下操作:

    StringBuilder buf = new StringBuilder(binario);
    for (int ix = 0; ix < buf.length(); ix++) {
        if (buf.charAt(ix) == '0') {
            buf.setCharAt(ix, '1');
        } else {
            buf.setCharAt(ix, '0');
        }
    }
    binario = buf.toString();

通过此更改,如果我在您的程序中输入 6(二进制 110),它会打印:

En sistema binario 6 se escribe 001
于 2016-08-30T21:17:03.443 回答