import java.math.BigInteger; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case BigInteger a = in.nextBigInteger(); char[] binary=a.toString(2).toCharArray(); int n=binary.length; //取反 for(int i=0;i<n/2;i++) { char t=binary[i]; binary[i]=binary[n-i-1]; binary[n-i-1]=t; } String tmp=new String(binary); BigInteger bi=new BigInteger(tmp,2); System.out.println(bi.toString()); } } }
常见操作
//1.将很长的字符串整数转化成为一个大整数 BigInteger bi=new BigInteger(String str);//eg."280382130818232102" //2.利用bi转化为不同进制,返回字符串 bi.toString(int radix);//new BigInteger("8").toString(2) 输入"1000" //3.加减乘除 a.add(BigInteger b); a.substract(BigInteger b); a.mutilty(BigInteger b); a.divid(BigInteger b); //将不同进制的字符串,转换成大整数 new BigInteger(String str,int jinzhi);
参考文档
[https://www.runoob.com/manual/jdk1.6/java.base/java/math/BigInteger.html]