Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Из 10-чной в 2-чную [D7, WinXP]


Sphinxx ©   (2005-02-11 22:18:00) 

А что вы можете подсказать насчет перевода из десятичной в двоичную систему (в строку)?


марсианин   (2005-02-12 12:55:00) [1]

c чем, простите, быстрее? :)
я не думаю, что подобного рода функии вообще не нуждаются в оптимизации по скорости. просто написал свою версию.

кстати, у тебя и у меня есть ошибка: мы жестоко забиваем на отрицательные числа. т.е. раз принимаем signed, значит и "-" не плохо бы ставить в случае отрицательного чилса.


default   (2005-02-12 02:08:00) [2]

марсианин ©   (12.02.05 02:04) [4]
а если стремиться к скорости думаю с BT и подобными будет быстрее


марсианин   (2005-02-12 02:04:00) [3]

на Цпп
std::string dec2bin(long n)
{
unsigned p = sizeof(long)*8;
char buff[p+1] = {0};//заполнит строку целиком нулями

while (true)
{
 buff[p] = (n & 1) ? ('1') : ('0');
 n >>= 1;
 if (!n) return std::string(&(buff[p]));  
 --p;
}
}


olookin   (2005-02-11 23:08:00) [4]

function DecToBin(n: integer): string;
var z: integer;
   s: string;
begin
 s:=''; z:=n;
 while n>1 do begin z:=n mod 2; n:=n div 2;
 if z=0 then s:='0'+s else s:='1'+s; end; DecToBin:='1'+s;
end;


default   (2005-02-11 23:04:00) [5]

см реализацию IntToBin в модуле IdGlobal


Palladin   (2005-02-11 23:02:00) [6]

Я могу сказать что ест целое и остаток


Наверх

Титульная страница Поиск, карта сайта Написать письмо