![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Из 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]Я могу сказать что ест целое и остаток