자바의 BigInteger 클래스를 사용해서 큰 정수를 다루는 방법에 대해 설명드리겠습니다.
BigInteger 선언 및 초기화
BigInteger는 java.math 패키지에 포함되어있는 클래스입니다.
BigInteger 클래스를 선언하고 초기화하는 방법입니다.
BigInteger bigInteger = new BigInteger("123456");
BigInteger bigIntegerRadix2 = new BigInteger("11110001001000000", 2); // 123456
BigInteger bigIntegerRadix8 = new BigInteger("361100", 8); // 123456
BigInteger bigIntegerRadix16 = new BigInteger("1e240", 16); // 123456
BigInteger otherBigInteger = new BigInteger(bigInteger.toByteArray()); // 다른 BigInteger로 새로운 BigInteger 생성
System.out.println("bigInteger = " + bigInteger);
System.out.println("bigIntegerRadix2 = " + bigIntegerRadix2);
System.out.println("bigIntegerRadix8 = " + bigIntegerRadix8);
System.out.println("bigIntegerRadix16 = " + bigIntegerRadix16);
System.out.println("otherBigInteger = " + otherBigInteger);
radix를 사용해서 2진수, 8진수, 16진수로 된 문자열을 10진수로 변환할 수 있습니다.
BigInteger 연산
BigInteger 클래스로 사칙연산하는 방법에 대해 설명드리겠습니다.
더하기, 빼기, 곱하기, 나누기, 나머지를 구하는 방법입니다.
BigInteger bigInteger1 = new BigInteger("100");
BigInteger bigInteger2 = new BigInteger("10");
// 덧셈
BigInteger add = bigInteger1.add(bigInteger2);
// 뺄셈
BigInteger subtract = bigInteger1.subtract(bigInteger2);
// 곱셈
BigInteger multiply = bigInteger1.multiply(bigInteger2);
// 나눗셈
BigInteger divide = bigInteger1.divide(bigInteger2);
// 나머지
BigInteger remainder = bigInteger1.remainder(bigInteger2);
System.out.println("add = " + add);
System.out.println("subtract = " + subtract);
System.out.println("multiply = " + multiply);
System.out.println("divide = " + divide);
System.out.println("remainder = " + remainder);
BigInteger로 연산을 진행하였습니다.
메소드 이름이 직관적으로 구성되어있어서 더하려면 add, 빼려면 subtract 이런식으로 메소드를 사용하면 됩니다.