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