Study/java

[Java] BigInteger 큰 정수 입력 받기, 연산 방법 정리

 

자바의 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);

BigInteger 초기화 결과
BigInteger 초기화 결과

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 연산 결과
BigInteger 연산 결과

BigInteger로 연산을 진행하였습니다.

메소드 이름이 직관적으로 구성되어있어서 더하려면 add, 빼려면 subtract 이런식으로 메소드를 사용하면 됩니다.