Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#16: 2009-04-24 00:42:58 ЛС | профиль | цитата
Tad писал(а):
а переворот делает StrCat

Интересно, а что лучше, на твой взгляд
карма: 22

0
Администрация
Ответов: 15294
Рейтинг: 1518
#17: 2009-04-24 00:47:05 ЛС | профиль | цитата
с точки зрения кода обе схемы эквивалентны полностью.
карма: 26
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#18: 2009-04-24 00:50:24 ЛС | профиль | цитата
Прогнал на время -- со StrCat-ом децил (на микросекунды при 10000 циклах прогона схемы, точную цифру поймать нереально) быстрее, но на уровне погрешности системного таймера
карма: 22

0
Ответов: 5227
Рейтинг: 586
#19: 2009-04-24 00:57:10 ЛС | профиль | цитата
Я не участвую в этой ветке а лишь тестирую, взял для примера самую удачную пока code_12967.txt.

Если изменить порядок выводимых пар то схемы с циклом можно смело выкидывать (и городить новое и ещё более тормозное), в моей будет достаточно сменить несколько цифр. Вот поэтому и стоит иной раз призадуматся.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_12967.txt [2KB] [434]
Ответов: 9906
Рейтинг: 351
#20: 2009-04-24 01:23:58 ЛС | профиль | цитата
Мне вот интересно, Думающие люди на форуме остались, или нет...
Которым не в лом посмотреть в корень вопроса.
((хотя, с другой стороны, зачем проекту думающие админы...))

Ежу понятно, что в здравом уме никому переворачивать свои данные для себя - на ум не придет.
Только чужие чтобы перевести их в свой формат (ну или наоборот)... Которые записаны в каком-то файле.
Действительно, никсоиды, в отличие от винды, шибко любят BigEndian=True

И следовательно, таковая потребность может возникнуть и для 2-байтов, и для 4-х, и для 8-ми. И для действительных чисел всех калибров, и, если это какой-нибудь RGB - и для 3-х байтного целого.
Всякие данные в бинарных файлах встречаются.
И чего теперь, каждый раз конкурсы устраивать с переводом данных в текст, а потом обратно.
Себе я это давно зарешал - GetDataEx называется, у которого есть св-во BigEndian. На форуме должен лежать где-то.
Уж по крайней мере бинарные данные в текст и обратно - не перевожу...

З.Ы. А инверсия байтов в DWORD - это даже не одна строчка кода на ЯВУ, одна команда проца. До которой ни один ЯВУ, как бы оптимизирующий лучше человека, не догадается.

#pas
function ReverseBytes(i:dword):dword;
asm
bswap eax
end;
Заодно можно не на словах, а на деле - сравнить, во сколько раз эти современные ЯВУ пишут оптимальнее человека.
карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#21: 2009-04-24 01:44:23 ЛС | профиль | цитата
Galkov, задача сделать максимально быстрый код у нас не стоит. Наша задача сделать максимально компактную схему. Скажем г-н andrestudio, уверен, что его схема на скрипте является самой быстрой (без учета IC очевидно), в чем мы его и разочаруем по окончании турнира.

Galkov писал(а):
это даже не одна строчка кода на ЯВУ, одна команда проца

вот и следовало это в FMP включить, как и MUL, DIV, OR, AND, XOR, которых там весьма не хватает и которые тоже являются одной командой проца.
карма: 26
0
Ответов: 485
Рейтинг: 86
#22: 2009-04-24 02:06:40 ЛС | профиль | цитата
code_12968.txt
карма: 0

1
файлы: 1code_12968.txt [765B] [427]
Голосовали:Астрамак
Ответов: 3514
Рейтинг: 184
#23: 2009-04-24 06:59:32 ЛС | профиль | цитата
Браво
карма: 0
0
Ответов: 117
Рейтинг: 9
#24: 2009-04-24 07:13:04 ЛС | профиль | цитата
Вот еще вариант
Add(Edit,12418314,238,175)
{
Left=5
Top=10
Width=190
Text="99900"
}
Add(Convertor,16291122,238,224)
{
Mode=6
Digits=8
link(onResult,309134:doLoad,[])
link(Data,12418314:Text,[])
}
Add(Button,14464638,147,217)
{
Left=200
Top=15
Data=String()
link(onClick,13015137:doEvent1,[])
}
Add(CharArray,309134,287,224)
{
link(onLoad,10604994:doEnum,[(331,230)(331,264)(275,264)(275,279)])
}
Add(ArrayEnum,10604994,287,273)
{
link(onItem,12733757:doSwitch,[])
link(Array,309134:Array,[])
}
Add(Switch,12733757,336,273)
{
Point(onOn)
Point(onOff)
link(onOn,7037157:doValue,[(379,286)(379,230)])
link(onOff,10175287:doString,[])
}
Add(Memory,7037157,392,224)
{
}
Add(Edit,12920450,448,287)
{
Left=5
Top=35
Width=190
Text=""
}
Add(FormatStr,10175287,392,287)
{
DataCount=3
Mask="%1%2%3"
Point(FString)
link(onFString,4886168:doWork2,[])
link(Str1,7037157:Value,[])
link(Str3,12920450:Text,[(412,275)(441,275)(441,328)(454,328)])
}
Add(Hub,13015137,196,217)
{
PColor(onEvent1,16744448)
link(onEvent1,4886168:doWork3,[(223,223)(223,333)(431,333)])
link(onEvent2,16291122:doConvert,[])
}
Add(HubEx,4886168,427,280)
{
link(onEvent,12920450:doText,[])
}
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#25: 2009-04-24 10:22:50 ЛС | профиль | цитата
AZot, этот вариант больше исходного
карма: 26
0
Ответов: 117
Рейтинг: 9
#26: 2009-04-24 10:51:07 ЛС | профиль | цитата
Dilma писал(а):

AZot, этот вариант больше исходного

Это просто вариант без использования копирования, вырезания строк.
Короче, чем у filyaxxxcom (4+2 элемента + 1 хаб) врятли получится.

В моем варианте можно и в 9 уложиться
Add(Edit,12418314,364,126)
{
Left=5
Top=10
Width=190
Text="99900"
}
Add(Convertor,16291122,364,175)
{
Mode=6
Digits=8
link(onResult,309134:doLoad,[])
link(Data,12418314:Text,[])
}
Add(Button,14464638,294,266)
{
Left=200
Top=15
Data=String()
Point(onMouseDown)
PColor(onClick,0)
link(onClick,16291122:doConvert,[(345,272)(345,181)])
link(onMouseDown,4886168:doWork3,[(557,279)])
}
Add(CharArray,309134,413,175)
{
link(onLoad,10604994:doEnum,[(455,181)(455,216)(398,216)(398,230)])
}
Add(ArrayEnum,10604994,413,224)
{
link(onItem,12733757:doSwitch,[])
link(Array,309134:Array,[])
}
Add(Switch,12733757,462,224)
{
Point(onOn)
Point(onOff)
link(onOn,7037157:doValue,[(505,237)(505,181)])
link(onOff,10175287:doString,[])
}
Add(Memory,7037157,518,175)
{
}
Add(Edit,12920450,574,238)
{
Left=5
Top=35
Width=190
Text=""
}
Add(FormatStr,10175287,518,238)
{
DataCount=3
Mask="%1%2%3"
Point(FString)
link(onFString,4886168:doWork2,[])
link(Str1,7037157:Value,[])
link(Str3,12920450:Text,[(538,226)(567,226)(567,279)(580,279)])
}
Add(HubEx,4886168,553,231)
{
PColor(onEvent,16744448)
link(onEvent,12920450:doText,[])
}
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#27: 2009-04-24 11:45:11 ЛС | профиль | цитата
nesco, а я тебе говорил, что в конверторах нехватает нижней точки.
Вон даже Dilma понравилось, как filyaxxxcom обошел эту проблему.
Молодец. Как говорится: "Голь на выдумки хитра".
Но не дело это ИМХО.
Точка нужна.
Просто в этой задаче это хорошо видно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Sniper36
Ответов: 8886
Рейтинг: 823
#28: 2009-04-24 11:50:19 ЛС | профиль | цитата
Tad, везде не хватает нужных именно сейчас и не только нижних точек
[b]Dilma[/b], я не претендую на советника^2, но задача математическая и нужно вернуть её в без строковое русло :)

Add(MainForm,10091820,210,35)
{
Height=96
Position=1
}
Add(Edit,4833166,231,105)
{
Left=5
Top=10
Width=180
Text="123456"
DataType=2
}
Add(Button,11207421,189,154)
{
Left=160
Top=35
Caption=">>"
link(onClick,14473886:doData,[])
}
Add(DoData,14473886,231,154)
{
link(onEventData,6942260:doWork2,[])
link(Data,4833166:Text,[])
}
Add(Math,15612114,315,154)
{
OpType=7
Op2=256
ResultType=0
link(onResult,5197700:doCompare,[])
}
Add(Math,6416203,315,203)
{
OpType=8
Op2=256
ResultType=0
link(onResult,5186219:doCalc,[])
}
Add(Hub,15488237,287,154)
{
link(onEvent1,15612114:doOperation,[])
link(onEvent2,6416203:doOperation,[(308,167)(308,209)])
}
Add(Convertor,14656363,406,203)
{
Mode=6
link(onResult,8522235:doText,[])
}
Add(If_else,5197700,357,154)
{
Type=2
Op2=Integer(0)
link(onTrue,6942260:doWork1,[(397,160)(397,144)(277,144)])
link(onFalse,5186219:doClear,[(403,167)(403,189)(352,189)(352,216)])
}
Add(HubEx,6942260,273,147)
{
link(onEvent,15488237:doEvent1,[])
}
Add(MathParse,5186219,364,203)
{
MathStr="%1*256 + %2"
Point(doClear)
link(onResult,14656363:doConvert,[])
link(X1,5186219:Result,[(370,194)(358,194)(358,243)(370,243)])
}
Add(Edit,8522235,448,203)
{
Left=195
Top=10
Width=190
}

карма: 19

2
файлы: 1code_12970.txt [1.2KB] [444]
Голосовали:nesco, vovs
Ответов: 16884
Рейтинг: 1239
#29: 2009-04-24 11:59:13 ЛС | профиль | цитата
Леонид,
1. code_12970.txt меня почему-то отправляет на старый форум.
2. скопировать коды удалось только нажав на "Правка"
3. Просили восьмизначный результат
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Администрация
Ответов: 15294
Рейтинг: 1518
#30: 2009-04-24 12:09:27 ЛС | профиль | цитата
Tad писал(а):
а я тебе говорил, что в конверторах нехватает нижней точки

дублирование результатов нижними точками в стандартном пакете увеличивает объемы занимаемой элементами памяти даже если точка не используется.


карма: 26
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)