4.4.1整数运算

虽然许多数值计算不能用整数进行,但Octave确实支持对整数进行加法和乘法等基本运算。运算符+, -, .*./处理相同类型的整数。因此,可以将两个32位整数相加,但不能将32位整数和16位整数相加。

进行整数运算时,应考虑溢出和溢出的可能性。当计算的结果不能使用所选的整数类型表示时,就会发生这种情况。例如,不可能表示的结果10 - 20使用无符号整数时。Octave确保整数计算的结果是最接近实数结果的整数。所以,结果是10 - 20当使用无符号整数时为零。

进行整数除法时,Octave会将结果四舍五入到接近目标的整数。这与大多数编程语言不同,在大多数编程语言中,结果通常被降到最接近的整数。所以,的结果int32 (5) ./ int32 (8)1.

 
: C = idivide (A, B, op)

具有不同舍入规则的整数除法。

整数除法的标准行为,例如A ./ B是将结果四舍五入到最接近的整数。这并不总是理想的行为和idivide允许对除法的小数部分进行不同处理的整数按元素除法,从op标志位opisa字符串,其中一个值为:

"fix"

计算A ./ B小数部分四舍五入为零。

"round"

计算A ./ B分数部分四舍五入到最接近的整数。

广告
"floor"

计算A ./ B分数部分向负无穷大取整。

广告
"ceil"

计算A ./ B分数部分向正无穷大取整。

广告

如果op未给定它默认为"fix"。演示这些舍入规则的示例是

idivide (int8 ([-3, 3]), int8 (4), "fix")
  ⇒   0   0
idivide (int8 ([-3, 3]), int8 (4), "round")
  ⇒  -1   1
idivide (int8 ([-3, 3]), int8 (4), "floor")
  ⇒  -1   0
idivide (int8 ([-3, 3]), int8 (4), "ceil")
  ⇒   0   1

详见: ceil, floor, fix, round, ldivide, rdivide.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2