Main Content

pow2

밑이 2인 거듭제곱 및 부동소수점 숫자의 스케일링

설명

예제

Y = pow2(E)E를 지수로 하여 2를 거듭제곱합니다. 즉, Y=2E입니다.

예제

Y = pow2(X,E)X에 2의 E 거듭제곱을 곱합니다. 즉, Y=X2E입니다.

예제

모두 축소

E를 지수로 하여 2를 거듭제곱합니다.

E = [1 -2 4 -4 3 9];
Y = pow2(E)
Y = 1×6

    2.0000    0.2500   16.0000    0.0625    8.0000  512.0000

이 예제에서는 2의 거듭제곱으로 가수를 스케일링한 표준 IEEE® 산술 결과와 pow2의 결과를 비교합니다.

문자형 벡터로 구성된 셀형 배열을 만들어 여러 가수에 대한 정확한 값을 표시합니다. 지수를 지정합니다.

Xcell = {'1/2','pi/4','-3/4','1/2','1-eps/2','1/2'}';
E = [1 2 2 -51 1024 -1021]';

2E 거듭제곱으로 Xcell을 스케일링한 표준 IEEE 산술 결과를 Ycell로 지정합니다. 이 결과를 테이블로 나타냅니다.

Ycell = {'1','pi','-3','eps','realmax','realmin'}';
table(Xcell,E,Ycell,'VariableNames',["Significand" "Exponent" "Value"])
ans=6×3 table
    Significand    Exponent       Value   
    ___________    ________    ___________

    {'1/2'    }         1      {'1'      }
    {'pi/4'   }         2      {'pi'     }
    {'-3/4'   }         2      {'-3'     }
    {'1/2'    }       -51      {'eps'    }
    {'1-eps/2'}      1024      {'realmax'}
    {'1/2'    }     -1021      {'realmin'}

그 다음 테이블의 결과를 pow2와 비교합니다.

Xcell을 부동소수점 숫자 X로 변환합니다. pow2(X,E)를 사용하여 2E 거듭제곱으로 X를 스케일링합니다.

X = str2num(char(Xcell));
Y = pow2(X,E)
Y = 6×1
10308 ×

    0.0000
    0.0000
   -0.0000
    0.0000
    1.7977
    0.0000

Ycell을 부동소수점 숫자 Ynum으로 변환합니다. isequalYYnum을 비교하여 pow2가 표준 IEEE 산술 연산을 따른다는 것을 보여줍니다.

Ynum = str2num(char(Ycell))
Ynum = 6×1
10308 ×

    0.0000
    0.0000
   -0.0000
    0.0000
    1.7977
    0.0000

isequal(Y,Ynum)
ans = logical
   1

입력 인수

모두 축소

지수 값으로, 스칼라, 벡터, 행렬, 다차원 배열, 테이블 또는 타임테이블로 지정됩니다.

데이터형: single | double | table | timetable

가수 값으로, E와 동일한 크기의 스칼라, 벡터, 행렬, 다차원 배열로 지정됩니다.

데이터형: single | double | table | timetable

Y = pow2(X,E) 구문은 ANSI® C 함수 ldexp()와 IEEE® 부동소수점 표준 함수 scalbn()에 대응합니다. 결과 Y는 단순히 X의 부동 소수점 지수에 E를 더하여 빠르게 계산됩니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | | | |