Math 如何在postscript中检查偶数或奇数

Math 如何在postscript中检查偶数或奇数,math,stack,postscript,modulus,Math,Stack,Postscript,Modulus,我试图在不影响堆栈的情况下检查堆栈顶部的数字是偶数还是奇数,因为我在递归函数中使用它。我还尝试了双重弹出,但这段代码仍然弄乱了函数 dup 2 0 mod eq { 0 0 0 setrgpcolor} {0.6 0.6 0.6 setrgpcolor}ifelse pop 你把论点的顺序搞错了。一次一步(假设顶部堆栈编号为123): 执行dupdup: 123 123 2 0 mod eq 在20上执行mod(!) 而且eq太少,太晚了 交换2个操作数以获得正确的结果: dup 2 m

我试图在不影响堆栈的情况下检查堆栈顶部的数字是偶数还是奇数,因为我在递归函数中使用它。我还尝试了双重弹出,但这段代码仍然弄乱了函数

dup 2 0 mod eq 
{ 0 0 0 setrgpcolor}
{0.6 0.6 0.6 setrgpcolor}ifelse
pop 

你把论点的顺序搞错了。一次一步(假设顶部堆栈编号为
123
):

执行dup
dup

123 123 2 0 mod eq
20
上执行
mod
(!)

而且
eq
太少,太晚了

交换2个操作数以获得正确的结果:

dup 2 mod 0 eq
{ .. number is even ..}
{ .. number is odd ..} ifelse

(注:
setrgpcolor
是打字错误,还是真的有一个名为so的颜色模型?)

123 123 --undefined-- eq
dup 2 mod 0 eq
{ .. number is even ..}
{ .. number is odd ..} ifelse