有人能介绍一下这个程序是如何工作的吗。我是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的代码。这是数学和算法的主要课程。我以完整的形式回答这个递归。