Converting decimal to binary and vise versa

49 views (last 30 days)
John Dimopoulos on 9 Jan 2018
Commented: John Dimopoulos on 10 Jan 2018
Hello Matlab Community,
I have a problem. I want to create a function that converts the decimal POSITIVE number that the user gives(maximum number that the user can give is 255) to binary(8-bit accuracy for every number from 0 to 255) and also another function that takes a binary number (max: 11111111 = 255) and converts it to decimal. I'd like to use the ''for'' loop and not functions of matlab like ''dec2bin'' or ''bin2dec''.I've tried a lot but still something doesn't work.
Thanks in Advance
5 CommentsShowHide 4 older comments
John Dimopoulos on 9 Jan 2018
Edited: John Dimopoulos on 9 Jan 2018
How can I convert the IP(1),IP(2),IP(3),IP(4) decimals to binaries using 'for' loop ? Maybe writing 'for j = 1:4' in line 7, 'dec_nr = IP(j)' in line 8 and 'end' in line 21 ? If I do this I get false results when I try 2-or-less-digit numbers (example:25).What can I do ?

Sign in to comment.

Accepted Answer

Roger Stafford on 9 Jan 2018
I’ll assume that the form of the binary version is a row vector, B, of eight ones or zeros, and that the "decimal" number is a double precision floating point number, D, whose value is an integer ranging from 0 to 255.
From D to B:
B = zeros(1,8);
for k = 8:-1:1
B(k) = mod(D,2);
D = (D-B(k))/2;
end
From B to D:
D = sum(B.*(2.^(7:-1:0)));
1 CommentShowHide None
John Dimopoulos on 10 Jan 2018
Very nice ! If I want to do the convertion in a vector of 1 line and 4 columns how to modify your code using the 'for' loop?

Sign in to comment.

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!

Translated by