-
Python %, modulo operator 나머지 연산자 음수컴퓨터/파이썬 2020. 6. 24. 15:49728x90반응형
C 에서 -1 % 10을 하면, $-1$이 나온다.
#include <stdio.h> int main() { int a = -1 % 10; printf("%d", a); }
Python 에서는 $9$라는 결과가 나온다.
print(-1 % 10)
C 가 옳은지 Python 이 옳은지 문제가 아니라, 작동 방식이 다르다고 한다.
(파이썬에서 사용되는 modulo 연산자가 수 이론에서 더 많이 사용된다고 한다.)
C는 아래와 같이 작동하고,
1. A / B = A/B -> floor(A/B) = C
(ex -> -1 / 10 = -0.1 => floor(-0.1) = -1)
2. A % B = (C * B - (C*B - A)) % B
(ex -> -1 % 10 = (-1 * 10 + 9) % 10 = -1)
파이썬에서는 쉽게,
A % B 가 있으면, A에다가 B를 계속 더하면서 처음으로 양수가 되었을 때 B로 나눠 나머지를 준다.
(ex -> -1 % 10 => -1 + 10 = 9, 9 % 10 = 9)
728x90'컴퓨터 > 파이썬' 카테고리의 다른 글
Python BST 바이너리 서치 트리 Traversal + Height (0) 2020.06.27 Sublime Text 3 nose2 테스트 사용하기 (0) 2020.06.21 #3 파이썬 dictionary 딕셔너리 이용 (0) 2020.06.20