首页 > 解决方案 > String toTwoCompliments(byte n) -> 错误:不兼容的类型:从 int 到 byte 的可能有损转换

问题描述

我编写了一个将字节转换为 TwoCompliments 字符串的方法。但是当我运行代码时,它显示:不兼容的类型:从 int 到 byte 的可能有损转换

String toTwoCompliments(int n) {
  String binary = "";
  if(n < 0) {
    n = n * (-1) -  1;
    while(n != 0) {
      if(n % 2 == 0) {
      binary = "1" + binary;
      n /= 2;
      } else {
      binary = "0" + binary;
      n /= 2;
      }
    }
    while(binary.length() < 8) {
      binary = "1" + binary;
    }
    return binary;
  } else {
    while(n != 0) {
      binary = n % 2 + binary;
      n /= 2;
    }
    while(binary.length() < 8) {
      binary = "0" + binary;
    }
    return binary;
  }
}

例如,如果我运行toTwoCompliments(64)它会返回一个错误。我的错误在哪里?谢谢你的帮助。

标签: javabinarybyte

解决方案


对不起,我的意思是有字节作为参数,所以正确的代码是

String toTwoCompliments(byte n) {
  String binary = "";
  if(n < 0) {
    n = n * (-1) -  1;
    while(n != 0) {
      if(n % 2 == 0) {
      binary = "1" + binary;
      n /= 2;
      } else {
      binary = "0" + binary;
      n /= 2;
      }
    }
    while(binary.length() < 8) {
      binary = "1" + binary;
    }
    return binary;
  } else {
    while(n != 0) {
      binary = n % 2 + binary;
      n /= 2;
    }
    while(binary.length() < 8) {
      binary = "0" + binary;
    }
    return binary;
  }
}

推荐阅读