주요 콘텐츠

음수 소수부 길이

음수 소수부 길이는 fi 객체의 입력값에서 소수점 앞에 후행 0이 있는 경우에 발생합니다. 예를 들면 다음과 같습니다.

x = fi(16000,1,8)

이것은 워드 길이가 8비트이고 최적 정밀도의 소수부 길이를 갖는 부호 있는 고정소수점 숫자를 생성합니다.

x = 

       16000

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: -7

x의 이진수 표현을 봅니다.

disp(bin(x))
01111101

x의 소수부 길이가 -7이므로 이 숫자의 끝에는 이진 소수점 뒤에 묵시적 0이 7개 있습니다.

끝에 0비트 7개가 추가된 x의 이진수 표현을 이진수에서 10진수로 변환합니다.

bin2dec('011111010000000')
ans =

       16000

결과는 x의 실제 값입니다.

방정식 Real World Value = Stored Integer Value × 2Fraction Length을 사용하여 실제 값을 구할 수도 있습니다.

x의 저장된 정수를 구하는 것부터 시작합니다.

Q = storedInteger(x)
Q =

  125

저장된 정수를 사용하여 x의 실제 값을 구합니다.

real_world_value = double(Q) * 2^-x.FractionLength
real_world_value =

       16000

참고 항목