我怎样才能得到除以 2 int
s 的剩余部分?
使用 Java 时,我使用%
运算符,但在 Pascal 中我能做什么?
使用此处描述的 mod 运算符。http://www.tutorialspoint.com/pascal/pascal_operators.htm
A mod B
帕斯卡的modulo
运算符是mod
. 它就像%
Java 和 C/C++ 中的运算符一样工作:
var
X, Y: Integer;
begin
X := 10;
Y := X mod 4; // result: Y = 2
Y := X mod 3; // result: Y = 1
end;
遗憾的是 Pascal mod 不能那样使用。原因是我在说服 Pascal 标准委员会方面做得并不完整。
我游说并请求标准委员会以正确的方式做 mod,直到他们最终让步。因此,例如 -5 mod 2 等于 1。令我恐惧的是,他们以错误的方式进行整数除法。我从没想过他们不会让这两个匹配。直到今天,帕斯卡 (-5 mod 2) + (-5 / 2) 等于 -4。我责备自己。
您可以使用在 Java中使用n mod 2
的相同方式(无论如何......不确定 Pascal 对负数做了什么,但 Java 做错了。)n % 2
n>=0
但是,这样做的最常见原因是测试数字是偶数还是奇数,而 Pascal 具有执行此操作的内置函数odd(n)
。在许多编译器ord(odd(n))
上是获取 n mod 2 余数的更快方法。
在delphi中有MOD运算符又名x = Y MOD Z。应该在pascal中工作