Java中十进制值到二进制值的转换

Java中十进制值到二进制值的转换,java,recursion,Java,Recursion,这是我的问题。在下面的代码中,我有一个voidtype方法,但是在这个方法中,我仍然可以找到一个return 另外,在递归调用中,我可以找到这个>操作符 所以我的问题是: 为什么在void函数中使用return 这是什么意思 import java.util.Scanner; 类别代码{ 公共静态void main(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); System.out.println(“在此处输入十进制值:”); int num=sc.nextInt(

这是我的问题。在下面的代码中,我有一个
void
type方法,但是在这个方法中,我仍然可以找到一个
return

另外,在递归调用中,我可以找到这个
>
操作符

所以我的问题是:

  • 为什么在void函数中使用return
  • 这是什么意思
import java.util.Scanner;
类别代码{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“在此处输入十进制值:”);
int num=sc.nextInt();
printBinaryform(num);
System.out.println();
}
私有静态void printBinaryform(整数){
整数余数;
如果(数量>1);
系统输出打印(剩余);
}
}

在您的代码中,
返回用于离开该函数。在
String
函数中,我们会使用
return
关键字,后跟一个字符串值,但在void函数中,return后面什么也不跟

>
操作符称为右移。它用于位移位。 但这个问题在这里已经有了答案:

12是二进制的
1100
。一位右移(>>是按位右移运算符)产生

1100
->
0110

结果是6

所以我们有,

6-1=5


它不返回值,也不希望递归调用返回任何内容,那么问题出在哪里?@jornsharpe我不知道if(number>1);“>>”做什么?当然它不返回任何值,它是一个void函数。看看。因此,这不是一个教程服务,我建议你找一个结构化的教程,让你了解语言的基础知识。@jonrsharpe ohh,好的,谢谢兄弟:)像往常一样,在这些问题中,除了用户输入的内容之外,这里根本没有小数
Scanner.nextInt()
已经进行了十进制到二进制的转换。那之后你在干什么,谁都猜得到。不清楚你在问什么,
import java.util.Scanner;
class Code {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your Decimal value here : ");
        int num = sc.nextInt();
        printBinaryform(num);
        System.out.println();
    }
    private static void printBinaryform(int number) {
        int remainder;
        if (number <= 1) {
            System.out.print(number);
            return; // KICK OUT OF THE RECURSION
        }
        remainder = number % 2;
        printBinaryform(number >> 1);
        System.out.print(remainder);
    }
}