当前位置: 首页 > 知识库问答 >
问题:

如何使用BigInteger将二进制转换为十进制?

微生俊材
2023-03-14

我正在尝试使用BigInteger类从二进制数打印十进制数。我正在使用BigInteger类的BigInteger(String val,int radix)构造函数将给定的二进制值转换为十进制值,但它打印的是构造函数中传递的精确二进制值。WAHT是错误吗?代码如下:

System.out.print("Ente the decimal number:");
s=String.valueOf(sc.nextInt());

BigInteger i=new BigInteger(s,10);
System.out.println(i);

共有2个答案

郭兴平
2023-03-14

如果您试图将输入字符串解析为二进制,则应编写:

BigInteger i=new BigInteger(s,2);

打印时

System.out.println(i);

默认情况下将以十进制显示。

但是,将数字读取为int然后转换为string并传递给biginteger构造函数是没有意义的,因为这会限制起作用的数字的范围。

尝试:

s = sc.nextLine();
BigInteger i=new BigInteger(s,2);
System.out.println(i);
商德泽
2023-03-14

实际上,您打印的不是二进制数的十进制值

打印的值是字符串val的精确十进制表示形式

根据您在此语句中添加的radix,它将如下所示:

 BigInteger i = new BigInteger("11101", 10); // 11101 

11101此输出实际上是十进制数,而不是二进制数

为了得到预期的结果,您应该将radix值更改为2之后,它将打印二进制数的十进制值:

BigInteger i = new BigInteger("11101", 2);
System.out.println(i);

输出:

29
 类似资料:
  • 我正在尝试将数字从十进制值转换为其IEEE 752形式。例如: 我写了这个方法: 有个问题我解决不了,我再举个例子说清楚。 但是当数字为负数时,例如 我收到以下错误: 这意味着我的代码可以完美地处理正数(包括零),但如果是负数,代码就会崩溃。问题出在哪里? 笔记 我想我可以用这种方式解决我的问题 检查是否有一个字符At(0)等于1 如果是(numero.charAt(0)==1),则删除第一个字符

  • 本文向大家介绍如何将十六进制转换为十进制?,包括了如何将十六进制转换为十进制?的使用技巧和注意事项,需要的朋友参考一下 而十六进制数是具有值是16的数字系统中的一个并且它具有唯一的16个码元:0,1,2,3,4,5,6,7,8,9和A,B,C,d,E ,其中A,B,C,D,E和F分别是十进制值10、11、12、13、14和15的单位表示。而十进制系统是最熟悉的号码系统向公众开放。它是10的基数,只

  • 本文向大家介绍如何将十进制转换为十六进制?,包括了如何将十进制转换为十六进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而十六进制是计算机或数字系统中最常见的数字系统颜色表示。它是基数16,只有16个符号:0、1、2、3、4、5、6、7、8、9和A,B,C,D,E,F。这些A,B,C,D ,E,F分

  • 我想知道如何将舞蹈方法的十进制结果包含到灯光方法中。例如,在这个程序中,如果我输入5F,十进制结果将是95。我希望95在light方法中显示为静态int变量,以便转换为二进制数。如果你能告诉我如何将十六进制数限制在2位数以内,那也会很有帮助。感谢阅读! } }

  • 问题内容: 我正在寻找一种简单的方法来在Swift中将二进制数转换为十进制数。例如,二进制的“ 10”变为十进制的“ 2”。 谢谢, 问题答案: 更新 为 斯威夫特2: 所有整数类型有 现在的方法,该方法根据给定的基数将字符串转换为整数: (先前的答案:) 您可以简单地使用BSD库函数,该函数根据给定的基数将字符串转换为数字:

  • 问题内容: 我想将二进制字符串转换为数字Eg 这怎么可能?谢谢 问题答案: 该函数将字符串转换为数字,并使用第二个参数来指定字符串表示形式的基数: 看到它在行动 。