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

时间:2019-06-04 05:32:53

标签: java

在得到的二进制文件前面,我总是得到0。

  public static String convertToBinaryString(int testSubject){


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

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

  }

如何摆脱前导零?

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

您可以使用内置函数

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

https://www.geeksforgeeks.org/java-lang-integer-tobinarystring-method/

答案 2 :(得分:0)

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

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;
  }