나는 예를 들어, VHDL 프로그램에서 이러한 진술을 가로 질러 와서VHDL에서 mod 연산자와 rem 연산자의 차이점은 무엇입니까?
9 mod 5
(-9) mod 5
9 mod (-5)
9 rem 5
(-9) rem 5
9 rem (-5)
나는 예를 들어, VHDL 프로그램에서 이러한 진술을 가로 질러 와서VHDL에서 mod 연산자와 rem 연산자의 차이점은 무엇입니까?
9 mod 5
(-9) mod 5
9 mod (-5)
9 rem 5
(-9) rem 5
9 rem (-5)
다른를 볼 수있는 방법은 테스트 벤치에서 빠른 시뮬레이션을 실행하는 두 개의 모드 사업자와 렘의 차이를 이해할 수 없었다 이 같은 방법을 사용하여 다음
process is
begin
report " 9 mod 5 = " & integer'image(9 mod 5);
report " 9 rem 5 = " & integer'image(9 rem 5);
report " 9 mod (-5) = " & integer'image(9 mod (-5));
report " 9 rem (-5) = " & integer'image(9 rem (-5));
report "(-9) mod 5 = " & integer'image((-9) mod 5);
report "(-9) rem 5 = " & integer'image((-9) rem 5);
report "(-9) mod (-5) = " & integer'image((-9) mod (-5));
report "(-9) rem (-5) = " & integer'image((-9) rem (-5));
wait;
end process;
그것은 결과를 도시하는 될 :
# ** Note: 9 mod 5 = 4
# ** Note: 9 rem 5 = 4
# ** Note: 9 mod (-5) = -1
# ** Note: 9 rem (-5) = 4
# ** Note: (-9) mod 5 = 1
# ** Note: (-9) rem 5 = -4
# ** Note: (-9) mod (-5) = -4
# ** Note: (-9) rem (-5) = -4
01,233,650
a mod n
n
제수의 부호를 갖는다 mod
운영자가 제공 a rem n
에 따라서 a
배당의 기호를 갖 규칙 포함 정교한 설명이 (반올림 나누기) 나누기위한 잔여 물, 그래서 a = floor_div(a, n) * n + (a mod n)
. 이점은 a
이 0을 통해 증가 할 때 반복되는 톱니파 그래프이며 일부 계산에서는 중요하다는 것을 a mod n
이 나타냅니다.
연산자는 a/n
의 정규 정수 나눗셈에 대한 나머지 부분을 0으로 잘라냅니다 (잘린 구분). 따라서 a = (a/n) * n + (a rem n)
입니다.
For equal sign:
9/5=-9/-5=1.8 gets 1
9 mod 5 = 9 rem 5
-9 mod -5 = -9 rem -5
-----------------------------------------
For unequal signs:
9/-5 = -9/5 = -1.8
In "mod" operator : -1.8 gets -2
In "rem" operator : -1.8 gets -1
----------------------------------------
example1: (9,-5)
9 = (-5*-2)-1 then: (9 mod -5) = -1
9 = (-5*-1)+4 then: (9 rem -5) = +4
----------------------------------------
example2: (-9,5)
-9 = (5*-2)+1 then: (-9 mod 5) = +1
-9 = (5*-1)-4 then: (-9 rem 5) = -4
----------------------------------------
example3: (-9,-5)
-9 = (-5*1)-4 then: (-9 mod -5) = -4
-9 = (-5*1)-4 then: (-9 rem -5) = -4
----------------------------------------
example4: (9,5)
9 = (5*1)+4 then: (9 mod 5) = +4
9 = (5*1)+4 then: (9 rem 5) = +4
http://computer-programming-forum.com/42-vhdl/6f9dce015f5ce94f.htm –