다음: 사용자 정의 자료형, 상위 문서: 자료형   [차례][찾아보기]


3.1 내장 자료형

표준 내장 자료형에는 실수, 스칼라 복소수, 행렬, 치역, 문자열, 구조체, 낱칸 배열이 있습니다. 미래에는 아마 더 많은 내장 자료형이 있을 것입니다. 현재 있는 내장이 아닌 특화 자료형이 필요하시다면, 여러분만의 사용자 정의 자료형을 만들고 옥타브 미래 배포판에 포함되도록 개발에 제공해 주세요.

변수의 자료형을 아래 함수로 확인하거나 변경할 수 있습니다.

분류명 = class (객체)
class (구조체, 식별자)
class (구조체, 식별자, 부모, …)

객체 객체의 분류 이름을 반환하거나, 구조체 구조체와 이름(문자열) 식별자로 분류를 생성합니다.

추가 매개변수는 새 분류가 상속받는 부모 분류의 이름 목록입니다.

같이 보기: typeinfo, isa.

isa (객체, 분류명)

객체가 분류 분류명에 속한 경우 참을 반환합니다.

분류명은 아래 범주 중 하나입니다.

"float"

"double"(배정도)과 "single"(단정도)로 구성된 떠돌이 소수점 값입니다.

"integer"

(u)int8, (u)int16, (u)int32, (u)int64로 구성된 정수 값입니다.

"numeric"

정수 또는 부동소수점인 숫자 값입니다.

분류명이 낱칸 배열인 문자열인 경우에는, 객체에 속한 각 분류가 참인 객체와 같은 크기의 논리 배열을 반환합니다.

같이 보기: class, typeinfo.

cast (, "형식")

을 자료형 형식으로 변환 합니다.

형식은 일반적으로 아래의 내장 분류를 따릅니다.:

"double"
"single"
"logical"
"char"
"int8"
"int16"
"int32"
"int64"
"uint8"
"uint16"
"uint32"
"uint64"

은 새 자료형에 알맞게 수정됩니다.

예시:

cast (-5, "uint8")
   ⇒ 0
cast (300, "int8")
   ⇒ 127

풀그림 짜기 안내: 이 함수는 객체 형식으로 바꾸는 방법이 있다고 전제합니다. 사용자 정의 분류는 분류가 위 전체 형식 목록에 포함되어 있을 때에만 변환 가능합니다. 이 경우에는, 원하는 형식으로 가기 위해 두 번 형변환을 해야 합니다. 예를 들어, 배정도로의 변환은 가능하지만, 부호 없는 8두값으로는 변환이 불가능한 경우가 있다고 칩시다. 이 경우에는 아래 부호를 사용해야 합니다.

cast (cast (user_defined_val, "double"), "uint8")

같이 보기: typecast, int8, uint8, int16, uint16, int32, uint32, int64, uint64, double, single, logical, char, class, typeinfo.

세로 = typecast (가로, "분류")

막기억장치 내 자료 x를 숫자 분류인 분류로 해석한 새 배열 y를 반환합니다.

xclass는 아래 내장 숫자 분류 중 하나이어야 합니다.

"logical"
"char"
"int8"
"int16"
"int32"
"int64"
"uint8"
"uint16"
"uint32"
"uint64"
"double"
"single"
"double complex"
"single complex"

마지막 두 항목은 복소수 값이 요구됨을 의미하고, 분류에서만 사용 가능합니다. 복소수 배열은 실수의 연속으로 막기억장치에서 삭제됩니다. 정수형의 크기는 두값을 세어 나타납니다. 논리 자료형과 문자형은 보통 1바이트이나, 이 크기를 C++에서 보장하지는 않습니다. 운영체제가 전기·전자 기술자 협회(IEEE) 규격을 따른다면, 단정도는 4바이트이고, 배정도는 8바이트입니다. 논리 자료형은 분류가 못 됩니다.

입력이 벡터 열이면, 반환도 벡터 열이고, 입력이 벡터 열이 아니면, 벡터 행으로 반환합니다.

만약 x의 두값 길이가 분류로 나누어 떨어지지 않으면, 오류가 발생합니다.

리틀 에디안 전산기에서의 typecast 용례입니다.

가로 = uint16 ([1, 65535]);
typecast (가로, "uint8")
⇒ [   1,   0, 255, 255]

같이 보기: cast, bitpack, bitunpack, swapbytes.

swapbytes (가로)

값의 바이트 순서를 바꾸어, 리틀 에디안을 빅 에디안으로, 빅 에디안은 리틀 에디안으로 바꿉니다.

예시입니다.

swapbytes (uint16 (1:4))
⇒   256   512   768  1024

같이 보기: typecast, cast.

세로 = bitpack (가로, class)

논리 배열 x를 단순한 이진 나열로 보고 숫자 분류 분류로 해석하여 새 배열을 y를 반환합니다.

분류는 반드시 내장 숫자 분류 중 하나이어야 합니다.

"double"
"single"
"double complex"
"single complex"
"char"
"int8"
"int16"
"int32"
"int64"
"uint8"
"uint16"
"uint32"
"uint64"

x 요소의 개수는 반드시 분류의 두값 길이로 나누어 떨어져야 합니다. 나누어 떨어지지 않으면, 나머지 두값은 제거됩니다. 두값은 중요도 순으로 커집니다. 예시) x(1)는 두값 0, x(2)는 두값 1 등.

x가 벡터 열이면 결과도 벡터 열이고, x가 벡터 열이 아니면 결과는 벡터 행입니다.

같이 보기: bitunpack, typecast.

세로 = bitunpack (가로)

단순한 이진 나열인 x에 맞는 논리 배열 y를 반환합니다.

x는 반드시 내장 숫자 분류 중 하나에 속해야 합니다.

"double"
"single"
"char"
"int8"
"int16"
"int32"
"int64"
"uint8"
"uint16"
"uint32"
"uint64"

x가 벡터 열이면 결과도 벡터 열이고, x가 벡터 열이 아니면 결과는 벡터 행입니다.

같이 보기: bitpack, typecast.


다음: 사용자 정의 자료형, 상위 문서: 자료형   [차례][찾아보기]