【问题标题】:How to use tilde ~ in a Java String如何在 Java 字符串中使用波浪号 ~
【发布时间】:2020-03-13 03:56:44
【问题描述】:

我必须找到十进制数的二进制补码。输入是字节,结果应该是字符串。我已经编写了一个将十进制转换为二进制的程序,但我不知道如何将二进制字符串转换为补码,也就是将 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;
}

【问题讨论】:

标签: java arrays math


【解决方案1】:

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

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


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

请注意,您可以这样做,只需使用自己的方法转换为二进制字符串。

【讨论】:

  • 这是一个家庭作业,不幸的是我不允许使用'Integer.toBinaryString(( & 0xFF) + 256).substring(1)'
  • 那么就用自己的方法把十进制转成二进制字符串。你说这已经奏效了。
  • 如何将二进制字符串转换为补码?
猜你喜欢
  • 2016-11-05
  • 2012-12-04
  • 2010-10-24
  • 1970-01-01
  • 2022-11-19
  • 2023-04-05
  • 1970-01-01
  • 2012-01-01
相关资源
最近更新 更多