Borrar filtros
Borrar filtros

Binary to floating point representation using IEEE-754

94 visualizaciones (últimos 30 días)
Arslan Ahmad
Arslan Ahmad el 22 de Feb. de 2018
Comentada: Anton Shishkin el 12 de Sept. de 2022
I am given a Character array of length 32 made of only zeros and ones and i want to convert in floating point representation using IEEE-754. Can any one help???? My string is '10101110101101011010010110101001'. and my code uptill now is
sign=binary(1);
exp=binary(2:9);
mantissa=binary(10:32)
subt=bin2dec(exp);
e=-127+subt;
num=0;
for i=1:length(mantissa)
num=mantissa(i)*2^(-i)+num;
end
  1 comentario
Arslan Ahmad
Arslan Ahmad el 22 de Feb. de 2018
i did it at last
function [result] = mySingle2Decimal(binary)
sign=str2num(binary(1));
exp=binary(2:9);
mant=binary(10:32);
subt=bin2dec(exp);
e=-127+subt;
num=0;
for i=1:length(mant)
num=str2num(mant(i))*2^(-i)+num;
end
result=(-1)^sign*(1+num)*2^(e);

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 22 de Feb. de 2018
Editada: Stephen23 el 22 de Feb. de 2018
It is simple to avoid the loop:
S = '10101110101101011010010110101001';
%S = '00111110001000000000000000000000'; % Wikipedia example
V = S-'0'; % convert to numeric
frc = 1+sum(V(10:32).*2.^(-1:-1:-23))
pow = sum(V(2:9).*2.^(7:-1:0))-127
sgn = (-1)^V(1)
val = sgn * frc * 2^pow

Más respuestas (1)

James Tursa
James Tursa el 22 de Feb. de 2018
Editada: James Tursa el 22 de Feb. de 2018
Any method you choose is going to have to make assumptions about bit/byte ordering and the handling of the special inf, nan, and denormalized bit patterns. The following method simply assumes that the char array bit pattern you have matches the machine you are currently using and accounts for these special patterns:
result = typecast(uint32(bin2dec(S)),'single');
The other methods shown in this thread that work with the sign, exponent, and mantissa bits directly do not account for these special bit patterns.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by