如何在Java字符串中使用波浪号〜

时间:2019-11-17 17:53:05

标签: java arrays math

我必须找到一个十进制数字的二进制补码。输入以字节为单位,结果应以字符串形式。我已经编写了一个将十进制转换为二进制的程序,但是我不知道如何将二进制字符串转换为二进制。补码又称0替换为1,1替换为0。

这是我到目前为止写的:

String toTwoComp(byte n) {
    String s = "";
    byte num = n;
    String res = "";
    while (n > -128 && n < 127) {
        s = (num % 2) + s;
        num = (byte) (num / 2);
        if (num == 0) {
            break;
        }
    }
    res = "00000000".substring(s.length()) + s;
    return res;
}

1 个答案:

答案 0 :(得分:0)

任何字节或整数x的二进制补码就是-x。那你尝试过吗?

   String b = toTwosComp((byte)3);
   System.out.println(b);


   static String toTwosComp(byte n) {
      int twosComp = -n;
      return Integer.toBinaryString(twosComp & 0xFF);
   }

请注意,您可以执行此操作,只需使用自己的方法即可将其转换为二进制字符串。