, , MATLAB. realmax . / , mantissa exponent base-10 representation, MATLAB. -
function [mantissa, base10_exponent] = base10_mantissa_exponent(base,exponent)
act_exp = exponent*log10(abs(base));
base10_exponent = floor(act_exp);
mantissa = power(10,act_exp - base10_exponent);
if rem(exponent,2)==1 && sign(base)==-1
mantissa = -mantissa;
end
return;
MATLAB .
№ 1
base = -125.343;
exponent = 101;
usual_approach = base^exponent
[mantissa, base10_exponent] = base10_mantissa_exponent(base,exponent)
-
usual_approach =
-8.0930e+211
mantissa =
-8.0930
base10_exponent =
211
№ 2 (, )
base = 100;
exponent = 1000;
-
usual_approach =
Inf
mantissa =
1
base10_exponent =
2000