Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý den, mám prosbu, nevěděl by někdo, jak dodělat tuto funkci tak, aby mi to počítalo i záporné hodnoty na vstupu? Jdou mi jen kladné. Je to převod z desítkové do binární soustavy.V programu MATLAB. děkuji
function [bin] = decbin(dec)
% Funkce vrací řetězec znaků odpovídající číslu v dec. v soustvě základ
dec = int32(dec);
zaklad = int32(2);
bin = '';
while (dec ~= 0)
zbytek = rem(dec, zaklad);
dec = idivide(dec, zaklad, 'fix');
bin = strcat(char(48 + zbytek), bin);
end
Offline

↑ matemak: Ahoj, otázka je jak definujete záporné binární číslo ? :) Se znaménkovým prvním bitem ? A jaký typ čísla převést int32 ?
Offline

↑ kotipelto: I když ono to je asi jedno, bohužel matlab neumím tak popíšu v pseudokódu
function ConvertToBits(cislo)
length = cislo.Length // delka cisla v bitech
string vysledek // vysledek
for from i = length - 1 to 0
shift = 1 << i // bitovy posun jedničky do leva o "i" bitu
bit = cislo & shift // bitovy and cisla s posunutou jednickou
if shift == bit then
vysledek += 1 // pricteni jednicky k vysledku
endif
else
vysledek += 0 // pricteni nuly k vysledku
endfor
return vysledek
Za předpokladu, že
<< je bitový posun doleva
& je bitový funkce And
+= je přidání znaku k řetězci
Offline