Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将二进制转换为二进制字符串:前导零_Java - Fatal编程技术网

Java 将二进制转换为二进制字符串:前导零

Java 将二进制转换为二进制字符串:前导零,java,Java,在生成的二进制文件前面我一直得到0 public static String convertToBinaryString(int testSubject){ if(testSubject == 0){ return binaryString = "0"; } else{ return convertToBinary(testSubject / 2) + "" + testSubject % 2; } } 如何去掉前导零?

在生成的二进制文件前面我一直得到0

  public static String convertToBinaryString(int testSubject){


    if(testSubject == 0){
      return binaryString = "0"; 
    }

    else{
      return convertToBinary(testSubject / 2) + "" + testSubject % 2;
    }

  }

如何去掉前导零?

解决此问题的一种方法是在testSubject<2时停止递归:


您可以使用内置函数

   int x = 50;
    String s = Integer.toBinaryString(x);
    return s;

还有其他更简单的方法。 您的程序有递归开销,这可以通过使用简单循环来避免

public static String convertToBinary(int testSubject) {
    // Method 1
    //   return Integer.toBinaryString(testSubject);

    // Method 2
    String str = "";
    while(testSubject!=0) {
      str = testSubject%2 + str;
      testSubject/=2;
    }
    return str;
  }

不要递归到最后一种情况。为什么有一堆未使用的变量?为什么返回binaryString=0;在这些问题中,由于某种原因,这里没有十进制到二进制的转换,而不是像往常一样返回0。int变量已经是二进制的。您正在做的是将二进制文件转换为可打印的二进制文件。
public static String convertToBinary(int testSubject) {
    // Method 1
    //   return Integer.toBinaryString(testSubject);

    // Method 2
    String str = "";
    while(testSubject!=0) {
      str = testSubject%2 + str;
      testSubject/=2;
    }
    return str;
  }