poj2305 java 大数 进制转换

import java.math.BigInteger;
import java.io.*;
import java.util.Scanner;
public class Main {
	public static void main(String[] args)
	{
		int b;
		BigInteger p,m,ans;
		String str;
		Scanner cin = new Scanner(new BufferedInputStream(System.in));
		while(cin.hasNext())
		{
			b = cin.nextInt();
			if(b==0)
				break;
			p = cin.nextBigInteger(b);
			m = cin.nextBigInteger(b);
			ans = p.mod(m);
			str = ans.toString(b);
			System.out.println(str);
		}
	}
}

java很强大的一个功能。

函数:

String st = Integer.toString(num, base); // 把num当做10进制的数转成base进制的st(base <= 35).

int num = Integer.parseInt(st, base); // 把st当做base进制,转成10进制的int(parseInt有两个参数,第一个为要转的字符串,第二个为说明是什么进制).   

BigInter m = new BigInteger(st, base); // st是字符串,base是st的进制.

 

1.如果要将一个大数以2进制形式读入 可以使用cin.nextBigInteger(2); 

当然也可以使用其他进制方式读入;

2.如果要将一个大数转换成其他进制形式的字符串 使用cin.toString(2);//将它转换成2进制表示的字符串


猜你喜欢

转载自blog.csdn.net/qq_41156122/article/details/81041549