많은 수치 계산이 정수 처리를 못하지만, 옥타브는 기본적인 덧셈과 곱셈 같은 연산에서 정수를 지원합니다. 연산자 +
,
-
, .*
, ./
는 동일한 형식의 정수 간 연산이 가능합니다. 그러므로
32두값 정수 두 개를 더하는 것은 가능해도, 32두값 정수와 16두값 정수 사이의 덧셈은 못합니다.
정수 계산을 할 때에는 아래넘침과 위넘침 가능성을 고려해야 합니다. 이 문제는 결과값이 지정된 자료형으로 표현할 수 없을 때에 발생합니다. 예를 들어, 부호 없는 정수형에서는 10 - 20의 해 표현이 불가능합니다. 옥타브는 정수 계산의 결과가 실제 결과와 가장 가까운 정수인지 확인합니다. 그래서 부호 없는 정수형을 사용할 때의 10 - 20 값은 0입니다.
정수의 나눗셈을 할 때에는 반올림을 사용하여 가장 가까운 정수를 도출합니다. 풀그림 언어 대부분이 버림을 사용해 근사값을 구하는 것과
차이가 있습니다. 그래서 int32 (5) ./ int32 (8)
의 결과는 1입니다
.
근사 방식을 지정하여 정수 나눗셈을 합니다.
a ./ b
같은 정수 나눗셈의 표준 방식은 반올림하여 가장 가까운 정수를
결과로 내는 것입니다. 반올림이 언제나 이상적인 방식이 아니기 때문에 idivide
는 정수의 원소 단위 나눗셈에서
선택지으로 지정하는 나눗셈의 소수 부분을 다른 방식으로 처리하는 것을 허용합니다. 선택지는 아래 문자열
값 중 하나입니다.
"fix"
a ./ b
의 소수 부분을 버림 방식으로 계산합니다.
"round"
a ./ b
의 소수 부분을 반올림 방식으로 계산합니다.
"floor"
a ./ b
의 소수 부분을 음의 무한대로 반올림 합니다.
※ 실제 값보다 작은 최대 정수로 계산합니다.
"ceil"
a ./ b
의 소수 부분을 양의 무한대로 반올림 합니다.
※ 실제 값보다 큰 최소 정수로 계산합니다.
선택지가 지정되지 않으면, 기본값은 "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