더북(TheBook)

이제부터는 Integer.MIN_VALUEInteger.MAX_VALUE를 부호 없는 수로 간주하고 divideUnsigned()remainderUnsigned() 메서드를 적용해보자.

// 부호 없는 나눗셈
int divisionUnsignedMinMax = Integer.divideUnsigned(
  Integer.MIN_VALUE, Integer.MAX_VALUE); // 1
int divisionUnsignedMaxMin = Integer.divideUnsigned(
  Integer.MAX_VALUE, Integer.MIN_VALUE); // 0

// 부호 없는 나머지
int moduloUnsignedMinMax = Integer.remainderUnsigned(
  Integer.MIN_VALUE, Integer.MAX_VALUE); // 1
int moduloUnsignedMaxMin = Integer.remainderUnsigned(
  Integer.MAX_VALUE, Integer.MIN_VALUE); // 2147483647

보다시피 비교 연산과 유사하다. 두 연산, 즉 부호 없는 나눗셈과 부호 없는 나머지 연산은 모든 비트를 값 비트(value bit)로 해석하고 부호 비트(sign bit)를 무시한다.

Info ≣ divideUnsigned()remainderUnsigned()는 각각 IntegerLong 클래스로 표현된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.