java - 在Java中将十进制值转换为二进制
问题描述
这是我的问题。在下面的代码中,我有一个void
type 方法,但是在这个方法中,我仍然可以找到一个return
.
另外,在递归调用中,我可以找到这个>>
运算符。
所以有我的问题:
- 为什么在 void 函数中使用 return ?
- 这是什么
number >> 1
意思?
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);
}
}
解决方案
在您的代码中,return;
用于离开该功能。在String
函数中,我们应该有return
关键字,后跟一个字符串值,但在 void 函数中,返回只是后跟什么都没有。
该>>
运算符称为右移。它用于位移。但是这个问题在这里已经有了答案:
12 是
1100
二进制的。右移一位(>> 是按位右移运算符)产生
1100
->0110
结果是6。
这样我们就有了,
6 - 1 = 5