자바 의 모드 와 나머지

5893 단어 Java
기 말 에 암호학 을 복습 할 때 취 모 연산 을 사용 해 야 하 는데 자바 의%연산 자 는 취 모 연산(Modulo Operation)이 아니 라 취 여 연산(Complementation)이라는 것 을 발견 했다.
계산 방법
정수 a a,b b b 에 있어 서 취 모 연산 과 취 여 연산 의 과정 은 같다.
정수 상:c=a/b c=a/b c=a/b c=a/b계산 모드 또는 나머지:r=a−c× b r = a - c \times b r=a−c×b
다만 취 모 와 취 여 는 첫 번 째 단계 에서 상 사 를 구 하 는 방법 에 있어 서 차이 가 있 습 니 다.취 여 연산 은 c c c 의 값 을 취 할 때 0 0 0 방향 으로 반올림(fix()함수)합 니 다.반면 취 모 연산 은 c c c 의 값 을 계산 할 때 마이너스 무한 방향 으로 반올림(floor()함수)합 니 다.
자바 예제
자바 의 나머지 연산 은%이 고,모드 연산 은 Math.floor Mod()입 니 다.
System.out.println("------Complementation------");
System.out.println(7 % 4);
System.out.println((-7) % 4);
System.out.println(7 % (-4));
System.out.println((-7) % (-4));

System.out.println();
System.out.println("------Modulo Operation------");
System.out.println(Math.floorMod(7, 4));
System.out.println(Math.floorMod(-7, 4));
System.out.println(Math.floorMod(7, -4));
System.out.println(Math.floorMod(-7, -4));

출력 결과:
------Complementation------
3
-3
3
-3

------Modulo Operation------
3
1
-1
-3

실행 결 과 를 통 해 알 수 있 듯 이 모드 연산 결과 의 기 호 는 b b b 와 일치 하고 나머지 연산 결과 의 기 호 는 a a a 와 일치 합 니 다.
주:C 와 C++의%도 나머지 이 고 Python 의%는 모드 입 니 다.

좋은 웹페이지 즐겨찾기