Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Из десятичной в двоичную


Автор: Georg4 28.1.2004, 17:35
Как число перегнать? из десятичной в двоичную!
Я сделал алгоритм месяц назад, но потом стер его и немогу востановить.
Идиотская ситуация, склероз, блин,
Помогите!
ТОлько не от склероза smile.gif!

Автор: Fedor 28.1.2004, 19:10
Дык... Все элементарно...
В цикле находишь остатки числа от деления на два, а потом делиш его (число на это самое 2).
Потом эти остатки выстраиваешь в обратном порядке. Вот и будет ответ.

З.Ы. Если надо подробнее, могу код написать.

Автор: p0s0l 28.1.2004, 19:41
Типа этого:
Код
function IntToBin (Value : cardinal; Digits : integer = 0) : string;
begin
 Result := '';
 while Value <> 0 do
 begin
   Result := Char(48 + (Value and 1)) + Result;
   Value := Value shr 1;
 end;
 while Digits > Length(Result) do Result := '0' + Result;
end;



Автор: Fedor 28.1.2004, 22:49
Ну, типа этого...
p0s0l Расслабляешь ты их... smile.gif

Автор: Georg4 29.1.2004, 01:25
Morpheus Это ты в каком смысле?

Автор: Georg4 29.1.2004, 19:00
Код работает!
И самое страшное что я делал почти так же! я вдруг вспомнил.
И как водится фигня которыя была тогда осталась и сейчас.
У меня слово: 11111111
И если оно выглядит так: 00111111
То преображается оно в: 111111.
Как бы это нулями заполнить? в конце! чтоб был формат из 8-ми бит!

Автор: Illusion Dolphin 29.1.2004, 20:28
А если просто сделать так:
Код

for i:=1 to 8-length(result) do
result:='0'+result;


Автор: p0s0l 30.1.2004, 19:53
Цитата
И как водится фигня которыя была тогда осталась и сейчас.
У меня слово: 11111111
И если оно выглядит так: 00111111
То преображается оно в: 111111.
Как бы это нулями заполнить? в конце! чтоб был формат из 8-ми бит!

А так не работает что-ли? IntToBin(63, 8);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)