Текущий архив: 2007.06.24;
Скачать: CL | DM;
Вниз
Функции для работы со строками. Найти похожие ветки
← →
default © (2007-05-31 14:12) [40]никому нафиг не интересен твой код!(без обид, я к тому чтобы ты говорил по сути, а не бросаясь кусками кода)
я просто к тому, что если принять
> мне нужно как-то оптимизировать то что уже содано и не более
> того.
хочется узнать что делается ещё со своей строкой чтобы по-быстрому предложить ускорение иными способом(чтобы минимально затронуть уже готовый код)
← →
G_M_S © (2007-05-31 14:47) [41]
> но у меня может быть, как 1 бит, так и 12 бит и даже больше
Какая разница? Тебе надо удалить первые n бит из набора - проверь, сколько целых байт надо откинуть (n div 8) и сделай с остальными байтами массива shl (n mod 8) - ВСЕ!!! Любые операции можно провернуть с битовыми сдвигами, операторами AND, OR, XOR.
> И что по твоему проще брать 13, представлять как биты,
Это УЖЕ биты! Вся инфа в компе - биты!
> и ведь "00001101" всё равно будет ведь в строке храниться
Зачем?!!
> когда будешь показывать преподу свой исходник предварительно
> дай выпить ему валерьянки чтобы не шарахнуло
Не факт - я знаю преподов, которые студентам могут и не такую фигню преподать...
> А как реализовать с помощью shl,shr,xor,or,and я пока вообще
> не представляю, надо разбираться, времни нет..., мне нужно
> как-то оптимизировать то что уже содано и не более того.
>
Понимаешь, в чем фикус-пикус... Большинство фокусов по оптимизации математических алгоритмов как раз и делаются битовыми операциями (а то и ассемблером).
> CopyVremPam:=VremPam;
> VremPam:=CopyVremPam;
Улыбнуло :)))
> s:=obr10in2(VremPam);
Что за батва? Перевод байта встроку побитово? ее тоже приведи - может, оптимизировать можно.
← →
Просто_новичок (2007-05-31 17:13) [42]Извиняюсь, срочно отойти нужно было.
G_M_S ,
> s:=obr10in2(VremPam);
Что за батва? Перевод байта встроку побитово? ее тоже приведи - может, оптимизировать можно. - да, перевод байта в строку бит. Вот функция:
function obr10in2(var VremPam:byte):string;
var
i:integer;
a,b,c:byte;
s:string;
begin
c:=VremPam;
s:="";
while c>=2 do
begin
a:=trunc(c/2);
b:=c-a*2;
c:=a;
s:=IntToStr(b)+s;
end;
b:=c;
s:=IntToStr(b)+s;
if length(s)<8 then
begin
for i:=1 to 8-length(s) do
s:="0"+s;
end;
Result:=s;
end;
← →
Просто_новичок (2007-05-31 17:15) [43]> CopyVremPam:=VremPam;
> VremPam:=CopyVremPam;
Улыбнуло :)))
А CopyVremPam нужна затем, что у меня в дальнейшем заитрается значение VremPam, пришлось хранить копию и потом присваивать предыдущее значение.
← →
G_M_S © (2007-05-31 19:03) [44]
> А CopyVremPam нужна затем, что у меня в дальнейшем заитрается
> значение VremPam, пришлось хранить копию и потом присваивать
> предыдущее значение.
Строки ПОДРЯД идут. Смотриться глупо.
> function obr10in2
Ну-у-у, блин... Ессно тормозит.
function obr10in2(a: BYTE): String;
var
i: Integer;
b: Byte;
begin
result := "";
for I := 0 to 7 do
begin
b := a and (255 AND (1 shl i));
if b = 0 then result := "0" + result
else result := "1" + result;
end;
end;
← →
DrPass © (2007-06-01 00:04) [45]
> У меня времени осталось 2 дня на то, чтобы сдать курсовик.
> ..
А смысл? Если твой препод не полный овощ, ЭТО ты не сдашь... По крайней мере, в качестве алгоритма архивации
← →
default © (2007-06-01 00:14) [46]DrPass © (01.06.07 00:04) [45]
ну почему же
скажет делал как мог, понёс несколько моральных травм на форуме программистов, борос свою лень, не ходил с девочками гулять, не пил и тд
это же на самом деле целый подвиг!
← →
G_M_S © (2007-06-01 10:41) [47]
> понёс несколько моральных травм на форуме программистов
...которые безвозвратно искалечили неокрепшую детскую психику :)))
> не ходил с девочками гулять, не пил
Не, так нагло врать нельзя... Препод все равно не поверит, зато осадочек у него останется.
Страницы: 1 2 вся ветка
Текущий архив: 2007.06.24;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.032 c