*/

*/ (times-slash) — 곱하고 나누기

*/(star-slash)는 n1n2를 곱해 중간 더블 셀 결과를 만들고, 그것을 n3로 나누어 단일 셀 몫 n4를 구하는 코어 단어예요.

출처: */ — Forth 2012 Standard

본문

스택 효과

( n1 n2 n3 -- n4 )

설명

n1n2를 곱해 중간 더블 셀 결과를 만들고, 그것을 n3로 나누어 단일 셀 몫 n4를 구해요. n3가 0이거나 중간 곱이 몫의 부호와 함께 정확히 표현될 수 없으면 애매한 조건이 존재해요. 중간 곱의 오버플로 때문에 몫이 단일 셀에 맞지 않으면 애매한 조건이 존재해요.

참조 (See)

  • 3.2.2.1 Integer division(정수 나눗셈)

테스트 (Testing)

T{       0       2       1 */ ->       0 }T
T{       1       2       1 */ ->       2 }T
T{       2       2       1 */ ->       4 }T
T{      -1       2       1 */ ->      -2 }T
T{      -2       2       1 */ ->      -4 }T
T{       0       2      -1 */ ->       0 }T
T{       1       2      -1 */ ->      -2 }T
T{       2       2      -1 */ ->      -4 }T
T{      -1       2      -1 */ ->       2 }T
T{      -2       2      -1 */ ->       4 }T
T{       2       2       2 */ ->       2 }T
T{      -1      -2      -1 */ ->      -2 }T
T{      -2      -2      -1 */ ->      -4 }T
T{       7       3       2 */ ->      10 }T
T{      -7       3       2 */ ->     -10 }T
T{       7      -3       2 */ ->     -10 }T
T{      -7      -3       2 */ ->      10 }T
T{ MAX-INT       2 MAX-INT */ ->       1 }T
T{ MAX-INT 1-      2 MAX-INT */ ->       1 }T

더 알아보기 (Learn more)

출처: */ — Forth 2012 Standard