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

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

dec->bin [D7]


Страницы:   1 2 3 4

Наталья ©   (2013-01-28 17:31:00) 

Из dec->hex:
Format('%.0x',[DEC]);

а в двоичную систему через Format можно?


Anatoly Pogoretsky   (2013-01-29 17:34:00) [21]

> Игорь Шевченко  (29.01.2013 17:21:47)  [47]

> Сейчас придет Sha и скажет :)

Сейчас придет Sha и всех
разгонит


Игорь Шевченко   (2013-01-29 17:21:00) [22]

MBo ©   (29.01.13 16:30) [46]

Сейчас придет Sha и скажет :)


MBo   (2013-01-29 16:30:00) [23]

>Игорь Шевченко ©   (29.01.13 15:42) [43]
Попробовал - получается скорость в 2.3 раза (при выводе 32 бит) выше, чему у функции IntToBin из модуля IdGlobalProtocols. В общем-то, вряд ли овчинка стоит выделки, в программе найдутся более узкие места ;)

 function IntToBinString(AValue: Integer;
   BitsToShow: Integer = SizeOf(Integer) * 8): string;
 const
   BitsStrings: array [0 .. 15] of string =
     ('0000', '0001', '0010', '0011',
      '0100', '0101', '0110', '0111',
      '1000', '1001', '1010', '1011',
      '1100', '1101', '1110', '1111');
 var
   pc: PChar;
 begin
   SetLength(Result, BitsToShow);
   pc := @PChar(Result)[0];
   while BitsToShow >= 4 do begin
     Move(Pointer(BitsStrings[AValue and $F])^, pc[BitsToShow - 4], 4 * SizeOf(Char));
     AValue := AValue shr 4;
     dec(BitsToShow, 4);
   end;
   if BitsToShow > 0 then
     Move(Pointer(BitsStrings[AValue and $F])^, pc[0], BitsToShow * SizeOf(Char));
 end;


Anatoly Pogoretsky   (2013-01-29 16:25:00) [24]

> Ega23  (29.01.2013 16:07:44)  [44]

Ну просто тут начинает
жаба давить, а так конечно
лучше


Ega23   (2013-01-29 16:07:00) [25]


> Для скорости нужна таблица из 16 строковых представлений
> на каждый ниббл. И сдвигать на 4 бита

А почему 16? Тогда уж на байт сразу, не?


Игорь Шевченко   (2013-01-29 15:42:00) [26]

Для скорости нужна таблица из 16 строковых представлений на каждый ниббл. И сдвигать на 4 бита


Ega23   (2013-01-29 15:11:00) [27]


> False всегда НОЛЬ, а прочих

Я в курсе, что ТруЪ - это не ноль. Но оно не мешает мне каждый раз путать значения местами. :)


Anatoly Pogoretsky   (2013-01-29 15:07:00) [28]

> Ega23  (29.01.2013 14:53:36)  [36]

А им помощь нужна?


Anatoly Pogoretsky   (2013-01-29 15:07:00) [29]

> Ega23  (29.01.2013 14:51:35)  [35]

False всегда НОЛЬ, а прочих
много, но правило True not False (not
логический)


Anatoly Pogoretsky   (2013-01-29 15:05:00) [30]

> Игорь Шевченко  (29.01.2013 14:50:34)  [34]

А может по шапке надоет


Anatoly Pogoretsky   (2013-01-29 15:04:00) [31]

> Ega23  (29.01.2013 14:43:31)  [31]

Калькулятор он разумный,
не в пример программерам, а
этот особо разумный,
работает с 2^128


Anatoly Pogoretsky   (2013-01-29 15:02:00) [32]

> Ega23  (29.01.2013 14:33:27)  [27]

Для без знакового будет
ерунда, а для знакового
ошибка,
В общему будет плохо


Ega23   (2013-01-29 14:53:00) [33]


> Сейчас придет Sha и скажет

Само-собой, щас ещё Розыч начнёт выступать :))


Ega23   (2013-01-29 14:51:00) [34]


> Правда выше лжи, очевидно же.

Я с вероятностью в 70% в цикле
 while not DataSet.Eof do
 begin
   ...
 end;


забываю DataSet.Next поставить. Вот забываю и всё, хоть убей. Оно понятно, что сразу отлавливается, но тем не менее.
Тут - ровно то же самое.


Игорь Шевченко   (2013-01-29 14:50:00) [35]

Ega23 ©   (29.01.13 14:38) [30]

Сейчас придет Sha и скажет


RWolf   (2013-01-29 14:49:00) [36]


> Да я вот чё-та забываю всё время, кто у них там первый,
> True или False.

Правда выше лжи, очевидно же.


Плохиш   (2013-01-29 14:46:00) [37]


> Так если мы переводим "-1" из десятичной в двоичную, то
> какой ответ?

Много единиц.


Ega23   (2013-01-29 14:43:00) [38]


> Так если мы переводим "-1" из десятичной в двоичную, то
> какой ответ?

На, смотри:

http://ega23.narod.ru/pix/calc.png


Ega23   (2013-01-29 14:38:00) [39]


> Ужос на крыльях ночи. Напиши array[Boolean] и не порть людям
> голову :)

Да я вот чё-та забываю всё время, кто у них там первый, True или False. Несколько раз накололся, когда местами менял, потом плюнул слюной и уже чётко пишу, что именно

Кстати, там вообще можно так
cDigit: array[0..1] of Char = ('0', '1');

 Result[cSize - i] := cDigit[(Value shr i) and 1];


aka   (2013-01-29 14:35:00) [40]


> Ega23 ©   (29.01.13 14:30) [25]


Так если мы переводим "-1" из десятичной в двоичную, то какой ответ?


Страницы:   1 2 3 4

Наверх

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