음수 소수부 길이
음수 소수부 길이는 fi 객체의 입력값에서 소수점 앞에 후행 0이 있는 경우에 발생합니다. 예를 들면 다음과 같습니다.
x = fi(16000,1,8)
이것은 워드 길이가 8비트이고 최적 정밀도의 소수부 길이를 갖는 부호 있는 고정소수점 숫자를 생성합니다.
x =
16000
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 8
FractionLength: -7x의 이진수 표현을 봅니다.
disp(bin(x))
01111101
x의 소수부 길이가 -7이므로 이 숫자의 끝에는 이진 소수점 뒤에 묵시적 0이 7개 있습니다.
끝에 0비트 7개가 추가된 x의 이진수 표현을 이진수에서 10진수로 변환합니다.
bin2dec('011111010000000')ans =
16000결과는 x의 실제 값입니다.
방정식 을 사용하여 실제 값을 구할 수도 있습니다.
x의 저장된 정수를 구하는 것부터 시작합니다.
Q = storedInteger(x)
Q = 125
저장된 정수를 사용하여 x의 실제 값을 구합니다.
real_world_value = double(Q) * 2^-x.FractionLength
real_world_value =
16000