다음: 논리 값, 이전: 정수 자료형, 상위 문서: 수치 자료형   [차례][찾아보기]


4.5 두값 조작

옥타브는 두값에 기초한 여러 수치 조작 함수 을 제공합니다. 개별 두값의 값을 설정하고 얻는 기본 함수는 bitsetbitget입니다.

C = bitset (A, n)
C = bitset (A, n, )

n번째 두값을 부호 없는 정수 A로 설정 또는 초기화 합니다.

최소 유효 두값은 n = 1입니다.  = 0은 두값을 초기화하고,  = 1은 두값을 설정합니다. 이 지정되지 않으면, 기본 값 1이 사용됩니다.(두값 설정) 모든 입력은 반드시 같은 크기이거나 스칼라이어야 합니다.

1번 예시: 여러 두값 설정

x = bitset (1, 3:5)
  ⇒ x =

   5    9   17

dec2bin (x)
  ⇒
     00101
     01001
     10001

2번 예시: 두값 설정 및 초기화

x = bitset ([15 14], 1, [0 1])
  ⇒ x =

   14    15

같이 보기: bitand, bitor, bitxor, bitget, bitcmp, bitshift, intmax, flintmax.

c = bitget (A, n)

부호 없는 정수 An 번째 두값의 상태를 반환합니다.

최소 유효 두값은 n = 1입니다.

bitget (100, 8:-1:1)
⇒ 0  1  1  0  0  1  0  0

같이 보기: bitand, bitor, bitxor, bitset, bitcmp, bitshift, intmax, flintmax.

옥타브의 모든 두값 단위 명령의 매개변수는,  k 매개변수가 반드시 스칼라이어야 하는 bitcmp를 제외하면 스칼라나 배열이 가능합니다. 매개변수 하나 이상이 배열이면, 그외 모든 매개변수도 같은 형태이어야하며, 두값 단위 명령이 개별 원소에 각각 적용됩니다. 스칼라 매개변수가 적어도 하나 있고, 배열 매개변수가 하나 있다면, 스칼라 매개변수는 배열 원소 각각에 적용됩니다. 그러므로

bitget (100, 8:-1:1)

는 아래와 똑같습니다.

bitget (100 * ones (1, 8), 8:-1:1)

옥타브의 두값 조작 함수에 매개된 모든 값은 정수로 다루어진다는 점에 주의하십시오. 그러므로, 비록 bitset에 부동소수점 값 10이 매개되어도, 원래 부동소수점으로 표현된 10의 두값이 아닌, 두값 [1, 0, 1, 0]으로 처리됩니다.

수치로 표현 가능한 최대 값은 두값 조작에서 중요하며, 특히 본을 뜰 때 중요하기 때문에, 부동소수점 정수용 flintmax함수와 정수 객체용(uint8, int64 등) intmax 함수가 제공됩니다.

또한 논리합, 논리곱, 배타적 논리합 연산자를 제공합니다.

bitand (가로, 세로)

음이 아닌 정수의 두값 단위 논리곱을 반환합니다.

가로, 세로는 반드시 [0,intmax] 범위이어야 합니다.

같이 보기: bitor, bitxor, bitset, bitget, bitcmp, bitshift, intmax, flintmax.

bitor (가로, 세로)

음이 아닌 정수 가로세로의 두값 단위 논리합을 정수로 반환합니다.

같이 보기: bitor, bitxor, bitset, bitget, bitcmp, bitshift, intmax, flintmax.

bitxor (가로, 세로)

음이 아닌 정수 가로세로의 두값 단위 배타적 논리합을 정수로 반환합니다.

같이 보기: bitand, bitor, bitset, bitget, bitcmp, bitshift, intmax, flintmax.

두값 단위 부정 연산자는 값의 각 두값에 논리 부정을 취하는 단항 연산자입니다. 이를 처리하려면, 값이 논리 부정된 본이 정의되어야 합니다. 옥타브의 부정 연산자는 bitcmp입니다.

bitcmp (A, k)

정수 A에 맞는 k두값의 보수를 반환합니다.

k가 지정되지 않으면, k = log2 (flintmax) + 1로 임의합니다.

bitcmp (7,4)
  ⇒ 8
dec2bin (11)
  ⇒ 1011
dec2bin (bitcmp (11, 6))
  ⇒ 110100

같이 보기: bitand, bitor, bitxor, bitset, bitget, bitcmp, bitshift, flintmax.

또한 두값 단위인 값의 왼쪽 밀기, 오른쪽 밀기 기능도 있습니다.

bitshift (a, k)
bitshift (a, k, n)

ak두값 만큼 밀어 숫자 n개를 반환합니다.

양수 k는 왼쪽으로 밀고, 음수 k는 오른쪽으로 밉니다.

n이 지정되지 않으면, 기본 값 64가 사용됩니다. n은 반드시 [1,64] 범위 사이이어야 합니다.

bitshift (eye (3), 1)
⇒
2 0 0
0 2 0
0 0 2

bitshift (10, [-2, -1, 0, 1, 2])
⇒ 2   5  10  20  40

같이 보기: bitand, bitor, bitxor, bitset, bitget, bitcmp, intmax, flintmax.

값 범위 양 끝 밖으로 밀려난 두값은 손실됩니다. 또한, 오른쪽 밀기 중 부호 두값은 고정하는 수치 이동도 지원합니다. 예시입니다.

bitshift (-10, -1)
⇒ -5
bitshift (int8 (-1), -1)
⇒ -1

bitshift (int8 (-1), -1)int8 자료형에서 -1[1, 1, 1, 1, 1, 1, 1, 1]이기 때문에 -1이라는 점에 유의하십시오.


다음: 논리 값, 이전: 정수 자료형, 상위 문서: 수치 자료형   [차례][찾아보기]