二进制位数
问题描述
十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。
十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。
请问十进制整数 2022 在二进制中是几位数?
答案提交要求
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码如下
// 实现十进制转二进制
import java.util.Scanner;
public class ToGet {
public static void main(String[] args) {
Scanner myScanner=new Scanner(System.in);
System.out.print("输入一个整数: ");
int i = myScanner.nextInt();
String len=Integer.toBinaryString(i);
System.out.println("该整数是" + i);
// 调用API函数中的.toBinaryString(i))方法
System.out.println("其二进制数是= " + Integer.toBinaryString(i)+" 长度是:"+len.length());
}
}
效果如下
改进 :Integer.to.String(int i,int radix);,radix默认值是10(十进制),但在这可以自定义将十进制转换成需要的进制
【JAVA中Integer类方法to String进行进制转换的手动输入转换进制方式】
本题的另一种写法
public class NewWay{
public static void main(String[]args){
System.out.println(Integer.toString(2022,2).length());
}
}
答案是 :11
总结:1、Java Integer 类的 toBinaryString() 方法将整数参数的字符串表示形式返回为二进制基数为 2 的无符号整数。
2、通过String自带的length()方法获取字符串长度。
如:
1 2 |
|
length()该方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目
3、当然改进的方式在实际编写中我认为更方便