Java-将十进制转换为二进制-整数-递归函数
嘿,我真的想把十进制整数转换成二进制整数,但没有成功 请帮帮我 我不想让它成为“System.out.println()”,因为我已经做过了 谢谢 `我需要一个递归函数,它获取十进制整数并返回二进制整数Java-将十进制转换为二进制-整数-递归函数,java,binary,decimal,Java,Binary,Decimal,嘿,我真的想把十进制整数转换成二进制整数,但没有成功 请帮帮我 我不想让它成为“System.out.println()”,因为我已经做过了 谢谢 `我需要一个递归函数,它获取十进制整数并返回二进制整数 public static void decToBin(int number) { if(number == 0) return ; decToBin(number / 2); System.out.print(number % 2); } 这就是我所做
public static void decToBin(int number) {
if(number == 0)
return ;
decToBin(number / 2);
System.out.print(number % 2);
}
这就是我所做的
当我尝试获取字符串时:
public static String decToBin(int number) {
if(number == 0)
return "";
return new Integer(number % 2).toString() + new Integer(decToBin(number / 2)).toString();
}
错误
public static String decToBin(int number) {
if(number == 0)
return "";
return new Integer(number % 2).toString() + new Integer(decToBin(number / 2)).toString();
}
这种方法几乎没有缺点
- 首先,您不能使用
作为“
的参数,因为新整数(“”
不包含任何值,因此您将看到NumberFormatException”
- 另一个问题是生成结果的顺序<代码>编号%2应放在
的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它decToBin(编号/2)
decToBin(number / 2); System.out.print(number % 2);
- 最后,在返回语句中,您正在创建新字符串,因此要生成
,您将生成“100101”
“1””
“01”
“101”
0101”
,最后生成““00101”
。为了避免这种情况,请使用100101”“
及其StringBuilder
方法append
- 首先,您不能使用
作为“
的参数,因为新整数(“”
不包含任何值,因此您将看到NumberFormatException”
- 另一个问题是生成结果的顺序<代码>编号%2应放在
的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它decToBin(编号/2)
decToBin(number / 2); System.out.print(number % 2);
- 最后,在返回语句中,您正在创建新字符串,因此要生成
,您将生成“100101”
“1””
“01”
“101”
0101”
,最后生成““00101”
。为了避免这种情况,请使用100101”“
及其StringBuilder
方法append
- 首先,您不能使用
作为“
的参数,因为新整数(“”
不包含任何值,因此您将看到NumberFormatException”
- 另一个问题是生成结果的顺序<代码>编号%2应放在
的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它decToBin(编号/2)
decToBin(number / 2); System.out.print(number % 2);
- 最后,在返回语句中,您正在创建新字符串,因此要生成
,您将生成“100101”
“1””
“01”
“101”
0101”
,最后生成““00101”
。为了避免这种情况,请使用100101”“
及其StringBuilder
方法append
- 首先,您不能使用
作为“
的参数,因为新整数(“”
不包含任何值,因此您将看到NumberFormatException”
- 另一个问题是生成结果的顺序<代码>编号%2应放在
的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它decToBin(编号/2)
decToBin(number / 2); System.out.print(number % 2);
- 最后,在返回语句中,您正在创建新字符串,因此要生成
,您将生成“100101”
“1””
“01”
“101”
0101”
,最后生成““00101”
。为了避免这种情况,请使用100101”“
及其StringBuilder
方法append
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
这有点陈旧,但为了参考和给出正确答案,您需要这样做:
public static String dec2Bin(int num) {
String result = ((num % 2 == 0) ? "0" : "1");
if (num == 0 || num == 1) {
return result;
}
return dec2Bin(num/2) + result;
}
这有点陈旧,但为了参考和给出正确答案,您需要这样做:
public static String dec2Bin(int num) {
String result = ((num % 2 == 0) ? "0" : "1");
if (num == 0 || num == 1) {
return result;
}
return dec2Bin(num/2) + result;
}
这有点陈旧,但为了参考和给出正确答案,您需要这样做:
public static String dec2Bin(int num) {
String result = ((num % 2 == 0) ? "0" : "1");
if (num == 0 || num == 1) {
return result;
}
return dec2Bin(num/2) + result;
}
这有点陈旧,但为了参考和给出正确答案,您需要这样做:
public static String dec2Bin(int num) {
String result = ((num % 2 == 0) ? "0" : "1");
if (num == 0 || num == 1) {
return result;
}
return dec2Bin(num/2) + result;
}
请告诉我们您尝试了什么。您的代码有什么问题?您是否得到一些错误/不正确的结果?或者您只是要求我们将其重写为其他不使用
System.out.println
的内容?是的,我希望它是字符串或int。。。请再次查看我的编辑。为什么需要递归?结果必须使用String
<代码>StringBuilder将更易于使用。请向我们展示您的尝试。您的代码有什么问题?您是否得到一些错误/不正确的结果?或者您只是要求我们将其重写为其他不使用System.out.println
的内容?是的,我希望它是字符串或int。。。请再次查看我的编辑。为什么需要递归?结果必须使用String
<代码>StringBuilder将更易于使用。请向我们展示