Converting decimal to binary, help!!
Show older comments
I'm trying to write a function that converts a string containing a number from decimal to binary (this number may include decimal points or a negative sign). I know to find, say the binary form of 25, I would simply find the remainder of 25/2, 12/2, 6/2, 3/2 and 1/2, and take those numbers and reverse them. I'm not sure how to implement this in code though. I also know that I need to split the string at the decimal point and identify its sign, which i've done below:
% function[bin]=myreal2bin(decstring)
if decstring(1)=='-'
decstring = decstring(2:end);
F = -1;
else
F = 1;
end
Ind = strfind(decstring, '.');
L = length(decstring);
if isempty(Ind)
Ind = L+1;
end
Num1 = decstring(1:Ind-1);
LN1 = length(Num1);
Num2 = decstring(Ind+1:end);
LN2 = length(Num1);
end
2 Comments
SB
on 2 Nov 2012
Image Analyst
on 2 Nov 2012
In the past, has changing your name ever worked to help you to understand how to write code?
Answers (1)
John Petersen
on 2 Nov 2012
0 votes
5 Comments
SB
on 2 Nov 2012
Jan
on 2 Nov 2012
@Srijohn: You cannot be sure how to write it, until you have written it. So just start to write it and ask specific questions if you get troubles.
SB
on 2 Nov 2012
John Petersen
on 2 Nov 2012
Edited: John Petersen
on 2 Nov 2012
What are you doing with
str2num(Num1) = q;
You cannot assign a number to a function call. I think you need to assign a temp variable to it like
floatnum = str2num(Num1);
and then use this whereever you have str2num(Num1) Try that for starters.
John Petersen
on 2 Nov 2012
Also, the last line
bin=bin1+bin2
will fail because these are strings. To concatenate strings, simply do
bin = [bin1, bin2];
Categories
Find more on Logical 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!