Azzera filtri
Azzera filtri

Write function to convert decimal to binary

21 visualizzazioni (ultimi 30 giorni)
Reema Noor
Reema Noor il 26 Nov 2023
Modificato: DGM il 5 Dic 2023
I am struggling to solve the following question: Write a function `dec_to_bin` that takes a decimal number as input and returns its binary representation as a string. Avoid using the built-in function `dec2bin`. Ensure that the function handles non-integer inputs and outputs the binary representation accurately.
  4 Commenti
Reema Noor
Reema Noor il 26 Nov 2023
So how can I write the function for this question? Because I am new to this
Walter Roberson
Walter Roberson il 26 Nov 2023
Let us start with something simple. If the input is 5.1, then what is "its binary representation as a string" ? You can work it out by hand and show us the major intermediate steps

Accedi per commentare.

Risposte (1)

DGM
DGM il 5 Dic 2023
Modificato: DGM il 5 Dic 2023
Meh. I'm going to ignore negative numbers for now. The question doesn't seem to actually mention it, though I strongly suspect otherwise.
Since the question isn't answerable without somebody actually stating the requirements, here is a rudimentary fixed-point representation for positive numbers only. Does that meet the requirements? Nobody knows.
N = [6.375 14.5625];
bits = [4 4]; % bits dedicated to [whole fractional] parts
positivefixedpt(N,bits)
ans = 2×8 char array
'01100110' '11101001'
function out = positivefixedpt(in,bits)
% only operates on the magnitude of the input
% sign is ignored
N = abs(in(:)); % vectorize, get magnitude
p = (bits(1)-1):-1:(-bits(2)); % powers corresponding to given bits
out = floor(N./2.^p); % divide
out = char(mod(out,2) + 48); % mod, convert to char
end
Are there edge cases which can break this? Now it's your turn to guess.

Categorie

Scopri di più su Numeric Types in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by