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