binary to decimal when binary with radix point

1 Ansicht (letzte 30 Tage)
Harel Harel Shattenstein
Harel Harel Shattenstein am 30 Dez. 2016
Kommentiert: Walter Roberson am 30 Dez. 2016
I have to convert the following binary number to decimal: 11000101.101
I am using
bin2dec('binary number')
but is does not work with a radix point

Antworten (2)

Stephen23
Stephen23 am 30 Dez. 2016
Bearbeitet: Stephen23 am 30 Dez. 2016
This is easy to do yourself:
>> str = '11000101.101';
>> idx = str~='.';
>> vec = 1:sum(idx);
>> pwr = sum(str(idx)==str(vec)) - vec;
>> sum((str(idx)-'0') .* 2.^pwr)
ans =
197.625

Walter Roberson
Walter Roberson am 30 Dez. 2016
parts = strsplit(str, '.') ;
dec2bin(parts{1}) + dec2bin(parts{2})/2^length(parts{2})
  3 Kommentare
Stephen23
Stephen23 am 30 Dez. 2016
@Harel Harel Shattenstein: there is a mistake in this untested code, the function dec2bin should actually be bin2dec. Otherwise it is correct.
Walter Roberson
Walter Roberson am 30 Dez. 2016
parts = strsplit(str, '.') ;
bin2dec(parts{1}) + bin2dec(parts{2})/2^length(parts{2})
That's what I get for posting at 3 in the morning ;-)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by