숫자형 데이터
- 업데이트 날짜:2025-08-27
- 10분 (읽기 시간)
LabVIEW는 숫자형 데이터를 부동소수, 고정 소수점, 정수, 부호없는 정수 및 복소수로 나타냅니다.
또한 일부 데이터 타입은 확장된 설정 옵션을 제공합니다. 예를 들어, 물리적 측정 단위를 복소수를 포함하여 부동소수 데이터와 연계하고, 고정 소수점 데이터에 대한 인코딩과 범위를 설정할 수 있습니다.
숫자 단위와 부동소수 연관하기
미터 또는 km/sec와 같은 물리적 측정 단위를 부동소수 형을 가지는 모든 숫자형 컨트롤 또는 인디케이터에 결합할 수 있습니다.
컨트롤의 단위는 단위 라벨로 불리는 분리된 고유 라벨에 나타납니다. 컨트롤에 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 보이는 아이템≫단위 라벨을 선택하여 단위 라벨을 디스플레이합니다. 단위 라벨에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 단위 문자열 만들기를 선택하여 단위 라벨을 편집합니다.
LabVIEW가 단위 라벨을 디스플레이할 때, 미터는 m, 피트는 ft, 초는 s 등과 같이 표준 약자를 사용하여 단위를 입력할 수 있습니다.
| 노트 수식 노드에서는 단위를 사용할 수 없습니다. |
단위와 엄격한 타입 확인
단위를 객체에 연결할 때, 오직 호환 가능한 단위를 가진 객체만 연결할 수 있습니다. LabVIEW는 엄격한 타입 확인을 사용하여 단위가 호환 가능한지를 확인합니다. 호환되지 않는 단위를 가진 두 객체를 연결하면, LabVIEW는 에러를 반환합니다. 예를 들어, LabVIEW는 마일 단위의 객체와 리터 단위의 객체를 연결하면 에러를 반환합니다. 왜냐하면, 마일은 거리의 단위이고 리터는 부피의 단위이기 때문입니다.
다음 VI는 호환 가능한 단위를 가진 객체의 연결을 보여줍니다. 이 VI에서, LabVIEW는 자동으로 거리 인디케이터를 스케일하여 미터 대신에 킬로미터를 디스플레이합니다. 왜냐하면 킬로미터가 인디케이터의 단위이기 때문입니다.
다음 VI에서는 거리가 초의 단위 타입을 가지므로 에러가 발생합니다. 에러를 수정하기 위해서는, 초를 이전 VI에서 보이는 것처럼 킬로미터와 같은 거리의 단위로 변경합니다.
일부 VI와 함수는 단위가 모호한 경우가 있습니다. 이런 VI와 함수는 단위를 가진 다른 터미널에 연결할 수 없습니다. 예를 들어, [증가] 함수는 단위가 모호합니다. 거리 단위를 사용할 때, 증가 함수는 1 미터를 더할지, 1 킬로미터를 더할지, 또는 1 피트를 더할지 명확하지 않습니다. 이 불확정성 때문에, 증가 함수나 다른 함수를 단위를 가진 데이터에 사용할 수 없습니다.
이 예제에서 모호성을 피하기 위해서는, 적절한 단위를 가지는 숫자형 상수와 [더하기] 함수를 사용하여 다음 블록다이어그램에서와 같이 고유의 단위 증가 함수를 생성합니다.
고정 소수점 데이터 타입
고정 소수점 데이터 타입은 2진수 비트를 사용하여 유리수 세트를 나타내는 숫자형 데이터 타입입니다. 데이터가 다양한 정확도와 범위를 갖도록 하는 부동소수 데이터 타입과는 달리, 고정 소수점 수는 항상 특정한 정수와 비트 수를 사용하도록 설정할 수 있습니다.
| 노트 고정 소수점 데이터 타입을 사용하여 유리수를 나타내려면 2진수는 밑이 2인 시스템이므로 유리수의 분모가 2의 거듭제곱으로 작아질 수 있어야 합니다. |
부동소수 형의 다이나믹 범위가 필요하지 않거나 부동소수 연산을 지원하지 않는 타겟에서 작업하려는 경우, 고정 소수점 데이터 타입을 사용하십시오.
| 노트 (FPGA Module) FPGA 타겟에서 고정 소수점 데이터를 사용하는 것에 대한 더 자세한 정보는 고정 소수점 데이터 타입 사용하기를 참조하십시오 숫자형 데이터 타입의 용도를 고려하여, 설계에 가장 적합한 데이터 타입을 결정해야 합니다. |
고정 소수점 데이터 타입에서 유리수 나타내기
고정 소수점 수는 고정된 정수와 소수 비트를 가집니다. 정수 비트는 2진 포인트의 왼쪽에서, 소수 비트는 2진 포인트의 오른쪽에 나타납니다. 사용하려는 정확한 비트 수를 지정할 수 있으므로, 소수점과 동일한 2진인 2진 포인트에 고정된 위치가 있습니다.
예를 들어, LabVIEW를 설정하여 유리수 0.5를 8개의 총 비트와 4개의 정수 비트를 가진 고정 소수점 수로 나타낼 수 있습니다.
| 유리수 | 대응하는 고정 소수점 |
|---|---|
| 0.5 | 0000.1000 |
또는 LabVIEW를 설정하여 동일한 유리수를 16개의 총 비트와 8개의 정수 비트를 가진 고정 소수점 수로 나타낼 수 있습니다.
| 유리수 | 대응하는 고정 소수점 |
|---|---|
| 0.5 | 00000000.10000000 |
부동소수에서 작업을 수행할 때, 부동소수는 정수와 소수 부분이 변화할 수 있다는 점에서 고정 소수점 수와 차별화됩니다. 즉, 2진 포인트는 부동소수에서 변할 수 있습니다.
| 노트 유리수 값에 상응하는 고정 소수점 수를 나타내는데 사용할 정확한 비트 수를 지정하지 않으면 LabVIEW는 가능한 데이터 손실을 방지하도록 비트 수를 조절합니다. LabVIEW는 64비트 이상의 수를 처리할 수 없습니다. |
고정 소수점 수 설정하기
숫자를 고정 소수점 형으로 설정하려면, 숫자형 객체에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 형을 선택하여 객체의 데이터 타입을 변경합니다. 고정 소수점 수에 대해 인코딩을 설정할 수 있습니다. 또한 고정 소수점 수에서 오버플로우 상태를 포함할지의 여부를 지정하고, 숫자형 함수가 어떻게 고정 소수점 수에 대해 오버플로우와 반올림 조건을 처리할지 지정할 수 있습니다. 고정 소수점 수를 설정하려면, 상수, 컨트롤, 인디케이터 또는 숫자형 함수에서 마우스 오른쪽 버튼을 클릭한 후, 바로 가기 메뉴에서 프로퍼티를 선택하여 숫자형 프로퍼티, 숫자형 상수 프로퍼티, 또는 숫자형 노드 프로퍼티 대화 상자를 디스플레이합니다.
인코딩
숫자가 특정한 비트 크기에 부합하게 하려면, 고정 소수점 수의 2진 인코딩을 지정합니다.
- 부호있음―이 옵션은 고정 소수점 데이터에 부호가 있는지의 여부를 결정합니다. 부호 있음을 선택하면 데이터를 나타내는 비트 문자열의 첫 번째 비트가 부호를 나타내는 비트가 됩니다.
- 부호없음―이 옵션은 고정 소수점 데이터에 부호가 없는지의 여부를 결정합니다.
- 워드 길이―LabVIEW가 고정 소수점 데이터의 모든 가능한 값을 나타낼 때 사용하는 비트 문자열의 총 비트 수입니다. LabVIEW가 수용하는 최대 워드 길이는 64비트입니다. 일부 타겟에서는 데이터가 보다 짧은 워드 길이로 제한될 수 있습니다. 타겟이 수용할 수 있는 워드 길이보다 더 긴 워드 길이의 고정 소수점 데이터가 있는 VI를 타겟에서 열면, VI의 와이어가 깨지게 됩니다. 타겟이 허용하는 최대 워드 길이에 대한 정보는 각 타겟에 대한 문서를 참조하십시오.
- 정수부분 워드 길이―LabVIEW가 고정 소수점 데이터의 모든 가능한 값을 나타낼 때 사용하는 비트 문자열의 정수 비트의 개수, 또는 최상위 비트의 왼쪽이나 오른쪽에 초기 위치가 주어질 때 2진 포인트를 옮겨서 최상위 비트가 되도록하는 비트의 개수입니다. 정수부분 워드 길이는 워드 길이보다 클 수 있고, 양수 또는 음수가 될 수 있습니다.
LabVIEW는 고정 소수점 데이터를 전달하는 와이어에서 커서를 이동하면 기본 도움말 윈도우에서 다음 포맷으로 이같은 설정을 나타냅니다:
<인코딩,워드 길이,정수부분 워드 길이>
예를 들면:
<s, 16, 8>는 8개의 정수 비트를 가진 부호있는, 16비트 수입니다. 다음 이미지는 워드 길이가 16, 정수부분 워드 길이가 8인 부호 있는 수를 나타냅니다.
| 1 | 워드 길이 (16비트) |
| 2 | 정수부분 워드 길이 (8비트) |
| 3 | 부호 비트 |
| 4 | 2진 포인트 |
롱 또는 음수 정수부분 워드 길이
정수부분 워드 길이가 워드 길이보다 크면, LabVIEW는 워드 길이를 초과하는 정수 비트를 저장하지 않습니다. 다음 이미지는 워드 길이가 8, 정수부분 워드 길이가 10인 수를 나타냅니다.
| 1 | 워드 길이 (8비트) |
| 2 | 정수부분 워드 길이 (10비트) |
| 3 | 저장되지 않는 정수 비트 |
| 4 | 2진 포인트 |
정수부분 워드 길이가 음수이면 LabVIEW는 정수 비트 뿐만 아니라 2진 포인트에서 시작하는 음수에 상응하는 소수 비트 수도 저장하지 않습니다. 다음 이미지는 워드 길이가 8, 정수부분 워드 길이가 -2인 수를 나타냅니다.
| 1 | 워드 길이 (8비트) |
| 2 | 워드 길이 - 정수부분 워드 길이 (8 비트 빼기 -2 비트) |
| 3 | 저장되지 않는 소수 비트 |
| 4 | 2진 포인트 |
범위
LabVIEW는 고정 소수점 수의 인코딩에서 지정한 값에 따라 고정 소수 점 수의 범위와 증분을 계산합니다.
- 최소값―고정 소수점 데이터 범위의 최소값입니다.
- 최대값―고정 소수점 데이터 범위의 최대값입니다.
- 증분―지정한 범위 내에 있는 숫자 사이의 증가값입니다.
LabVIEW는 고정 소수점 데이터를 전달하는 와이어에서 커서를 이동하면 기본 도움말 윈도우에서 다음 포맷으로 이같은 설정을 나타냅니다:
[최소, 최대]: 델타
예를 들면:
[–4, 4]:1은 최소값 –4, 최대값 4 그리고 델타 1을 가집니다.
고정 소수점 연산
워드 길이를 지정한 고정 소수점 수에 대해 산술 연산을 수행하면, VI를 실행하기 전에 지정한 위치에 비해 2진 포인트의 위치가 변하지 않습니다. 이러한 동작은 산술 연산에 의해 2진 포인트 또는 소수점이 런타임에서 변경될 수 있는 부동소수와는 다릅니다. 산술 연산 결과에서 고정 소수점 설정이 허용하는 워드 길이보다 큰 워드 길이가 필요한 경우, 연산 결과로 얻게되는 데이터를 손실할 수 있습니다.
따라서 LabVIEW는 가능할 경우, 숫자형 함수의 출력값 워드 길이를 조절하여 데이터 손실을 방지합니다. 그러나, LabVIEW는 출력값을 나타내는 워드 길이가 지정한 최대값이나 LabVIEW 최대값 64비트를 초과할 경우, 데이터 손실을 방지할 수 없습니다. 숫자형 함수의 출력 셋팅을 설정하려면, 함수에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 프로퍼티를 선택하여 숫자형 노드 프로퍼티 대화 상자를 디스플레이합니다.
오버플로우 및 반올림
오버플로우 및 반올림 조건은 고정 소수점 수에서 산술 연산을 수행하거나 [고정 소수점으로] 함수를 사용하여 숫자형 데이터를 고정 소수점 데이터로 변환할 때 발생할 수 있습니다. LabVIEW는 숫자형 함수의 출력을 설정하여, 가능한 경우 고정 소수점 데이터의 오버플로우 또는 반올림을 방지합니다. 그러나 일부 조건에서 LabVIEW는 오버플로우 또는 반올림을 방지할 수 없습니다.
예를 들어, 고정 소수점 값을 더하기, 빼기, 곱하기, 제곱과 같은 숫자형 함수에 연결하는 경우, LabVIEW는 출력값의 워드 길이를 증가시켜 연산의 결과를 수용하는 것이 기본설정입니다. 이같은 작동은 부동소수 값의 작동방법과 유사합니다. 그러나 LabVIEW가 수용하거나 사용자가 지정하는 최대 워드 길이를 초과하는 출력값이 오버플로우 또는 반올림 방지 시에 필요한 경우, 오버플로우 또는 반올림 조건이 발생할 수 있습니다. LabVIEW가 수용하는 최대 워드 길이는 64 비트입니다.
또한 밑이 2인 시스템에서 정확히 나타낼 수 없는 타입 사이클과 값에서도 오버플로우 또는 반올림이 발생할 수 있습니다.
오버플로우
연산의 결과가 출력 타입의 값의 범위내에 있지 않으면 오버플로우가 발생합니다. 다음의 오버플로우 모드에서 선택하여 오버플로우를 처리할 수 있습니다:
- 임계값 사용―값이 출력 타입의 원하는 범위 내 최대값보다 큰 경우, LabVIEW는 값을 지정한 최대값으로 강제 변환하거나 반올림합니다. 값이 출력 타입의 원하는 범위내 최소값보다 작은 경우, LabVIEW는 값을 지정한 최소값으로 강제 변환합니다.
- 유효자리 줄이기―값이 출력 타입의 원하는 범위내에 있지 않은 경우, LabVIEW는 값이 출력 타입의 원하는 범위내에 있게 될 때까지 값의 유효자리 비트를 버립니다. 이 옵션을 사용하려면 출력값이 사용자가 지정한 인코딩에 부합해야 합니다. 이 옵션을 선택한 경우, 원하는 범위를 지정할 수 없습니다. LabVIEW가 자동으로 인코딩에 맞도록 범위를 설정하기 때문입니다.
| 노트 일반적으로, 임계값 사용 모드는 FPGA에서 추가적인 하드웨이 리소스를 요청합니다. |
오버플로우의 발생 여부를 구분하기 위해, 오버플로우 상태를 포함하도록 고정 소수점 수를 설정할 수 있습니다. 고정 소수점 수에 오버플로우 상태를 포함하면, LabVIEW는 추가적인 저장 공간을 할당하여 고정 소수점 수가 오버플로우된 작업의 결과인지 확인할 수 있도록 합니다. 오버플로우 상태를 포함하도록 고정 소수점 수를 설정한 이후, 고정 소수점 컨트롤, 상수, 인디케이터에 오버플로우 상태 LED를 디스플레이할 수 있습니다. 고정 소수점 수의 오버플로우 상태가 참일 때 이 LED가 켜집니다. 또한 고정 소수점 오버플로우? 함수를 사용하여 고정 소수점 수의 오버플로우 상태를 구분할 수 있습니다. 고정 소수점 함수를 사용하여 고정 소수점 수의 오버플로우 상태를 조정합니다.
| 노트 LabVIEW는 고정 소수점 수에 대해 언더플로우 조건을 확인하지 않습니다. |
[비교] 함수를 사용하여 고정 소수점 수를 비교할 때, LabVIEW는 오버플로우 상태를 무시하고 숫자만을 비교합니다. 예를 들어, 같음? 함수를 사용하여 오버플로우 상태가 참인 고정 소수점 값 1.5를 오버플로우 상태가 아닌 고정 소수점 값 1.5와 비교하는 경우, LabVIEW는 참을 반환합니다.
숫자형 함수의 출력 셋팅을 설정하려면, 함수에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 프로퍼티를 선택하여 숫자형 노드 프로퍼티 대화 상자를 디스플레이합니다. 이 대화 상자를 사용하여 LabVIEW의 오버플로우 및 반올림 조건 처리 방식을 설정할 수 있습니다.
반올림
입력값 또는 연산 결과의 정밀도가 출력 타입의 정밀도보다 큰 경우에 반올림이 발생합니다. LabVIEW는 입력값을 출력 타입과 동일한 정밀도를 가진 값으로 강제 변환합니다. 예를 들어, 출력 타입이 연속적인 값 s와 t를 나타낸다고 가정해 봅니다. 연산 결과가 값 x이며, x가 s < x < t에서처럼 s와 t 사이에 있는 경우, 출력 타입이 x를 정확히 나타낼 수 없기 때문에 반올림이 발생합니다.
다음 반올림 모드에서 선택하여 반올림을 처리할 수 있습니다:
- 내림(Truncate)―출력 타입이 표현할 수 있는 가장 가까운 값으로 내림합니다. LabVIEW는 값의 최하위 비트를 버립니다. 이 반올림 모드는 성능면에서는 가장 효율적이지만 출력값의 정확도는 다소 떨어집니다. 예를 들어, 출력 값 x가 s < x < t가 성립되도록 연속적인 값 s와 t 사이에 있는 경우, LabVIEW는 x를 s와 동일한 값으로 설정합니다.
- 반올림(Round-half-up)―출력 타입이 표현할 수 있는 가장 가까운 값으로 반올림합니다. 반올림할 값이 두 값의 정중앙에 위치하는 경우, 이 모드는 두 개의 유효값 중에서 더 높은 값으로 반올림합니다. LabVIEW는 최하위 비트의 반을 출력값에 추가한 다음, 이 값을 내림합니다. 이 반올림 모드는 잘라버림 모드보다는 출력값이 정확하지만 성능에 미치는 영향도 큽니다. 예를 들어, 출력 값 x가 s < x < t가 성립되도록 연속적인 값 s와 t 사이에 있는 경우, LabVIEW는 x를 s 또는 t 중 더 가까운 값으로 설정합니다. x가 정확히 s와 t 사이에 있다면 LabVIEW는 t를 선택합니다.
- 반올림(Round-half-even)―출력 타입이 표현할 수 있는 가장 가까운 값으로 반올림합니다. 반올림할 값이 두 값의 정중앙에 위치하는 경우, LabVIEW는 반올림 이후에 최하위 비트가 되는 값의 비트를 확인합니다. 비트가 0인 경우, 이 모드는 값을 출력 타입이 표현할 수 있는 두 값 중에서 더 낮은 값으로 반올림합니다. 비트가 0이 아닌 경우, 이 모드는 값을 둘 중에서 높은 값으로 반올림합니다. 이 반올림 모드는 성능에 가장 큰 영향을 미치지만 출력값은 잘라버림 모드에서 보다 정확합니다. 이 모드는 반올림(Round-half-up) 모드를 사용하는 여러 반올림 작업을 실행할 때 더 높은 값에 치중하게되는 현상을 상쇄시킵니다. 이 모드가 기본 반올림 모드입니다. 예를 들어, 출력 값 x가 s < x < t가 성립되도록 연속적인 값 s와 t 사이에 있는 경우, LabVIEW는 x를 s 또는 t 중 더 가까운 값으로 설정합니다. x가 s와 t의 정중앙에 위치하는 경우, 반올림한 후의 최하위 비트(LSB)가 0이면 s를 선택합니다. 반올림 후의 최하위 비트가 0이 아니면 t를 선택합니다.
| 노트 반올림 모드에 따른 성능의 영향은 최소입니다. 그러나 FPGA와 같은 타겟에서 오버플로우를 처리하는 VI를 실행하면 성능에 대한 영향이 클 수 있습니다. |
FPGA 성능에 미치는 영향에 대한 추가적인 정보는 고정 소수점 데이터 타입 사용하기를 참조합니다.