상위 문서: 정수 자료형   [차례][찾아보기]


4.4.1 정수 계산

많은 수치 계산이 정수 처리를 못하지만, 옥타브는 기본적인 덧셈과 곱셈 같은 연산에서 정수를 지원합니다. 연산자 +, -, .*, ./는 동일한 형식의 정수 간 연산이 가능합니다. 그러므로 32두값 정수 두 개를 더하는 것은 가능해도, 32두값 정수와 16두값 정수 사이의 덧셈은 못합니다.

정수 계산을 할 때에는 아래넘침과 위넘침 가능성을 고려해야 합니다. 이 문제는 결과값이 지정된 자료형으로 표현할 수 없을 때에 발생합니다. 예를 들어, 부호 없는 정수형에서는 10 - 20의 해 표현이 불가능합니다. 옥타브는 정수 계산의 결과가 실제 결과와 가장 가까운 정수인지 확인합니다. 그래서 부호 없는 정수형을 사용할 때의 10 - 20  값은 0입니다.

정수의 나눗셈을 할 때에는 반올림을 사용하여 가장 가까운 정수를 도출합니다. 풀그림 언어 대부분이 버림을 사용해 근사값을 구하는 것과 차이가 있습니다. 그래서 int32 (5) ./ int32 (8)의 결과는 1입니다.

idivide (가로, y, 선택지)

근사 방식을 지정하여 정수 나눗셈을 합니다.

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

같이 보기: ldivide, rdivide.


상위 문서: 정수 자료형   [차례][찾아보기]