有人能介绍一下这个程序是如何工作的吗。我是java新手

有人能介绍一下这个程序是如何工作的吗。我是java新手,java,binary,decimal,converter,Java,Binary,Decimal,Converter,请解释如何将十进制转换为二进制: import java.util.*; public class decimalToBinaryTest { public static void main(String[] args) { int number; Scanner in = new Scanner(System.in); System.out.println("Enter a positive interger");

请解释如何将十进制转换为二进制:

import java.util.*;

public class decimalToBinaryTest {
    public static void main(String[] args) {

        int number;
        Scanner in = new Scanner(System.in);

        System.out.println("Enter a positive interger");
        number = in.nextInt();

        if (number < 0) {
            System.out.println("Not a positive interger");
        }

        else {
            System.out.print("Convert to binary is: ");
            System.out.print(binaryform(number) + ".");
        }
    }

    private static Object binaryform(int number) {

        int remainder;

        if (number <= 1) {
            System.out.print(number);
            return null;
        }

        remainder = number % 2;
        binaryform(number >> 1);
        System.out.print(remainder);
        {
            return " ";
        }
    }
}
我主要不了解私有静态对象中的位。或者返回。我真的不知道它是怎么做的,但它是有效的。如果输入10,则显示:Convert to binary is:1010


我需要>>1还是*0.5

这段代码中有两个重要的时刻:

binaryform(number >> 1);
第一:递归。从此函数foo{foo;}调用函数 第二:按位。>>1-1位的移位数,与2的偏差相同

每次递归迭代,代码按2划分,递归函数从上到下运行后打印提醒。就像:

{
  {
    {
      {
      print inner (fourth iteration
      }
    print before inner (third iteration)
    }
  print before before inner (second iteration)
  }
print outer (first iteration)
}

这叫做递归。阅读更多:代码作者似乎不知道,如果声明的方法返回类型为void并决定返回null或null之类的值,那么她可以使用无值返回。这种方法也是以递归的方式工作的。首先它计算提醒,然后将位右移一位,6 0110>>1得到3 0011,这与整数除以2是一样的。请解释递归以及程序为什么必须将数字移位1位。你说的除以2是什么意思?检查一下移位。110 6向右移位到1位>>1:011 3=6/2@tomjdog你只需要解释这个特定的递归方法,还是还需要什么是递归?@Phesmo这两个我都是新手java@tomjdog它不是特定于Java的代码。这是数学和算法的主要课程。我以完整的形式回答这个递归。