2

我怎样才能得到除以 2 ints 的剩余部分?

使用 Java 时,我使用%运算符,但在 Pascal 中我能做什么?

4

5 回答 5

4

使用此处描述的 mod 运算符。http://www.tutorialspoint.com/pascal/pascal_operators.htm

A mod B
于 2013-05-17T12:11:32.033 回答
1

帕斯卡的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;
于 2013-05-17T13:13:46.067 回答
1

遗憾的是 Pascal mod 不能那样使用。原因是我在说服 Pascal 标准委员会方面做得并不完整。

我游说并请求标准委员会以正确的方式做 mod,直到他们最终让步。因此,例如 -5 mod 2 等于 1。令我恐惧的是,他们以错误的方式进行整数除法。我从没想过他们不会让这两个匹配。直到今天,帕斯卡 (-5 mod 2) + (-5 / 2) 等于 -4。我责备自己。

于 2018-01-24T10:22:20.520 回答
1

您可以使用在 Java中使用n mod 2的相同方式(无论如何......不确定 Pascal 对负数做了什么,但 Java 做错了。)n % 2n>=0

但是,这样做的最常见原因是测试数字是偶数还是奇数,而 Pascal 具有执行此操作的内置函数odd(n)。在许多编译器ord(odd(n))上是获取 n mod 2 余数的更快方法。

于 2016-04-29T14:13:05.340 回答
0

在delphi中有MOD运算符又名x = Y MOD Z。应该在pascal中工作

于 2013-05-17T12:12:04.650 回答