Can anyone help me to understand the concept of this code ( IEEE 754 REPRESENTATION

2 ビュー (過去 30 日間)
Rajashree Annapillai
Rajashree Annapillai 2018 年 8 月 9 日
clc
clear all
close all % Converting input of base 10
format long g
x=randi([1 50],1,1)
%Converting of mantissa (x_1) to between 1 and 2 of base-2 scientific notation
n_exponent=0;
x_1=x;
if abs(x)<1
while abs(x_1)<1
n_exponent=n_exponent-1;
x_1=x/(2.^n_exponent);
end
else
while abs(x_1)>=2
n_exponent=n_exponent+1;
x_1=x/(2.^n_exponent);
end
end
%Exponent to 8-bit binary (single precision 127)
exp_127=n_exponent+127;
bit8=0;
order=1;
for n=1:8
bit8=rem(exp_127,2)*order+bit8;
exp_127=fix(exp_127/2);
order=order*10;
end
% Converting fraction to 23-bit mantissa (leading 1 hidden)
fraction=x_1-1;
bit23=0;
order1=1;
for n=1:23
fraction=fraction*2;
bit23=order1*fix(fraction)+bit23;
fraction=rem(fraction,1);
order1=order1*10;
end
%Determining sign of x
sign=0;
if x<0
sign=1;
end
%Full IEEE 754 binary floating point
N=32;
len=length(sign)+length(num2str(bit8))+length(num2str(bit23))
fprintf('%d', [sign, fliplr(bit8), fliplr(bit23),zeros(1,N-len)])
  3 件のコメント
David Goodmanson
David Goodmanson 2018 年 8 月 10 日
編集済み: David Goodmanson 2018 年 8 月 10 日
Hi Rajashree, take a look at https://en.wikipedia.org/wiki/Double-precision_floating-point_format
Rajashree Annapillai
Rajashree Annapillai 2018 年 8 月 12 日
Thank you sir.Can you please explain how the exponent is calculated by this code.

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2016a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by