Main Content

고정소수점 데이터형

디지털 하드웨어에서 숫자는 이진 워드로 저장됩니다. 이진 워드는 1과 0으로 이루어진 고정 길이의 비트 시퀀스입니다. 하드웨어 컴포넌트나 소프트웨어 함수가 이러한 1과 0의 시퀀스를 해석하는 방법은 데이터형에 의해 정의됩니다. 이진수는 고정소수점 또는 부동소수점 데이터형으로 표현됩니다.

고정소수점 데이터형은 워드 길이(비트 수), 이진 소수점의 위치, 부호의 유무로 특징지을 수 있습니다. 이진 소수점의 위치를 사용하여 고정소수점 값을 스케일링하고 해석할 수 있습니다.

예를 들어 일반화된 고정소수점 숫자의 이진수 표현은 부호의 유무에 상관없이 아래와 같습니다.

여기서

  • bii번째 이진수 숫자입니다.

  • wl은 워드 길이(비트 수)입니다.

  • bwl-1은 최상위 비트(MSB) 또는 가장 높은 비트의 위치입니다.

  • b0은 최하위 비트(LSB) 또는 가장 낮은 비트의 위치입니다.

  • 이진 소수점은 LSB 왼쪽으로 4번째 자리에 표시되어 있습니다. 이 예에서, 이 숫자는 소수부가 4비트이거나 소수부 길이가 4라고 말합니다.

고정소수점 데이터형은 부호가 있을 수도 있고 없을 수도 있습니다. 고정소수점 값에서 부호의 유무 여부는 대개 이진 워드 내에 명시적으로 인코딩되지 않습니다. 즉, 부호 비트가 없습니다. 대신 부호 정보는 컴퓨터 아키텍처 내에 묵시적으로 정의됩니다.

일반적으로 컴퓨터 하드웨어에서 부호 있는 고정소수점 이진수는 다음 세 가지 방법 중 하나로 표현됩니다.

  • 부호/크기 – 이진 워드에서 비트 하나는 항상 부호 비트이며, 워드의 나머지 비트는 숫자의 크기(magnitude)를 인코딩합니다. 부호/크기 표현을 사용한 부정은 부호 비트를 0(양수)에서 1(음수)로 또는 1에서 0으로 뒤집는 과정으로 구성됩니다.

  • 1의 보수 – 1의 보수의 이진수를 부정하려면 비트별 보수가 필요합니다. 즉, 모든 0은 1로 뒤집어지고, 모든 1은 0으로 뒤집어집니다. 1의 보수 표기법에서는 0을 두 가지 방법으로 표현할 수 있습니다. 모두 0으로 구성된 이진 워드는 "양수" 0을 나타내고, 모두 1로 구성된 이진 워드는 "음수" 0을 나타냅니다.

  • 2의 보수 – 부호 있는 2의 보수 표현을 사용한 부정에서는 비트 반전(1의 보수로 변환)이 수행된 후 1이 이진 덧셈됩니다. 예를 들어 000101의 2의 보수는 111011입니다.

부호 있는 고정소수점 숫자의 가장 일반적인 표현은 2의 보수이며, Fixed-Point Designer™ 문서에서는 이 표현 방식만 사용합니다.