conversion from binary to decimal

1 view (last 30 days)
disp('conversion from binary to decimal');
z=input('give a floating point number ','s');
n=strfind(z,'.'); %index of the .
z1=z(1:n-1); %z1 vector
z2=z(n+1:length(z)); %z2 second part after .
x=bin2dec(z1); %bin 2 dec transformation of the first part of the number (before .)
%transformation of the decimal part of the number
for i=1:length(z2)
y=y+(z2(i)-48)*b; %what is -48, it is set for precsion?
fprintf('Il numero in base 10 e'':\n');
-48 is set for a better precision in the conversion from binary to decimal or there is another reason?
Thank you!!

Accepted Answer

David Hill
David Hill on 2 Jan 2020
No, the -48 is converting the ascii character '0' or '1' to a number.
Walter Roberson
Walter Roberson on 2 Jan 2020
In all character sets that I have been able to find since the 1930's, IBM's EBCDIC is the only one that did not encode the characters '0' through '9' as consecutive positions in the table with '0' being the low value (EBCDIC coded '1' as the low value and '0' followed '9' if my memory is correct)
Therefore for all computer languages that you are ever likely to encounter, you can rely on the fact that the character code for a particular single digit "Arabic numeral" is that many positions after the position for the character code for '0'.

Sign in to comment.

More Answers (0)


Find more on Tables in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by