我想把二进制转换成整数,乘以17,然后再转换成二进制。这是我的密码:
Scanner scan = new Scanner(System.in);
String n = scan.nextLine();
long j = Long.parseLong(n, 2);
j = j * 17;
System.out.println(Long.toBinaryString(j));
我最初做了一个int,但是当我得到一个更大的测试用例时,我改变了它:
10001111110001000101000001000100111100110101100011000011011001111000100110110000110101110101100001001100010111000101000100010010011000000010010
它有一个numberformatexception,这是有意义的,因为long只能存储有限数量的数字,所以对于非常长的整数有数据类型吗?
3条答案
按热度按时间pinkon5k1#
使用
BigInteger
当计算超过long
,例如。输出
de90aj5v2#
例如:
7z5jn7bk3#
你试过biginteger还是bigdecimal。
https://www.baeldung.com/java-bigdecimal-biginteger
这两种类型特别适用于要求数字具有大范围或任意范围的情况,如某个值>或=到1x10^307和小于1x10^307
那应该对你有帮助。