虽然许多数值计算不能用整数进行,但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