учим Cи |
Привіт Гість ( Вхід | Реєстрація )
учим Cи |
A1ex01 |
Aug 27 2013, 23:12
Пост
#1
|
round catcher) Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64 |
сабж, а заодно и асм х86
пока меня интересуют консольные приложения(работа с бинарными файлами), остановился на gcc(именно си, а не си++) под линух(debian) предлагаю тут кидать ссылки на интересные мануалы/примеры или просто постить примеры (Show/Hide) работа с файлами (Show/Hide) фрагменты asm книг у гугля(тут куча книг, омг)) под линух асм имеет чуть другой формат доки для мак, оптимизации мой черновик задачи №1(осталось допилить чуток) (Show/Hide) -------------------- |
A1ex01 |
Sep 1 2013, 23:00
Пост
#16
|
round catcher) Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64 |
статья которую надо читать перед написанием нового проекта http://habrahabr.ru/post/117193/ и закинуть такие справочники подальше 1) пользы по ссылке мало 2) какие справочники? и где взять лучше? задача #1: написать прогу для вычисления хешей sha2 для 64 байтовых блоков из входного файла и запись результата в другой файл т.е. прочитал 64 байт, получил хеш, записал и так далее. На выходе файл будет в ~2 раза меньше исходного смогеш?) up: условия уточнил, 512bit (SHA-256), а не байт, что равно 64байт -------------------- |
Rilian |
Sep 1 2013, 23:10
Пост
#17
|
interstellar Група: Team member Повідомлень: 17 062 З нами з: 22-February 06 З: Торонто Користувач №: 184 Стать: НеСкажу Free-DC_CPID Парк машин: ноут и кусок сервера |
какие справочники? и где взять лучше? смысл в статье в том что ЩЯС куча современных методологий и бест-практисов, а также библиотек для решения практически всех распространенных задач. И совет не изобретать велосипеды и думать что ты умнее компилятора --- По теме, каков объем исходных данных ? -------------------- |
A1ex01 |
Sep 1 2013, 23:15
Пост
#18
|
round catcher) Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64 |
--- По теме, каков объем исходных данных ? анлим) (0,1-100Гига) можно начать с Килобайт (Кибибайт) ап: также интересует как у руби с битовым вращением? на си можно вставить asm rol/ror eax,ecx... -------------------- |
Rilian |
Sep 2 2013, 00:00
Пост
#19
|
interstellar Група: Team member Повідомлень: 17 062 З нами з: 22-February 06 З: Торонто Користувач №: 184 Стать: НеСкажу Free-DC_CPID Парк машин: ноут и кусок сервера |
--- По теме, каков объем исходных данных ? анлим) (0,1-100Гига) можно начать с Килобайт (Кибибайт) ап: также интересует как у руби с битовым вращением? на си можно вставить asm rol/ror eax,ecx... руби это интерпретируемый язык, но ты можешь делать биндинги на C, в которых, в свою очередь, юзать что угодно для потоковой обработки руби/питон тебе не поможет. Парсинг входящих бинарных данных на С это довольно простая задача я почему спрашиваю, потому что посчитать данные это одно дело, а вот использовать их эффективно - совсем другое если тебе надо рейнбоу тейбл то сразу задумайся о структуре для хранения и поиска -------------------- |
A1ex01 |
Sep 2 2013, 11:15
Пост
#20
|
round catcher) Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64 |
A1ex01, емае, учи Руби! Могу тебе мастер класс устроить в Киеве для потоковой обработки руби/питон тебе не поможет. Парсинг входящих бинарных данных на С это довольно простая задача Рилиан, ты бы в тему въехал сначала, а потом советы)) -------------------- |
Rilian |
Sep 2 2013, 13:49
Пост
#21
|
interstellar Група: Team member Повідомлень: 17 062 З нами з: 22-February 06 З: Торонто Користувач №: 184 Стать: НеСкажу Free-DC_CPID Парк машин: ноут и кусок сервера |
обычно ядро обработки пишется на чем-то низкоуровневом, а все остальное например на руби для удобства работы и запуска этих самых низкоуровневых обработчиков
например, тебе надо будет данные брать из сети. Это удобнее сделать на Руби чем на С. Иначе 99% времени будешь бороться с утечками памяти, вместо решения задачи -------------------- |
whynot |
Sep 7 2013, 21:34
Пост
#22
|
кранчер зі стажем Група: Trusted Members Повідомлень: 378 З нами з: 8-December 08 Користувач №: 882 Стать: Чол Free-DC_CPID jabber:whynot@jabster.pl |
смогеш?) легко CODE perl -MDigest -we ' $aa=Digest->new("SHA-256"); while(read STDIN,$ab,64){ $aa->add($ab); print $aa->b64digest,"\n" }' Подвернул для читаемости. Отдавал в base64, потому что когда бинарное сыпется в терминал, то становится совершенно не смешно. -------------------- --
А ты готов к третьему майдану? |
A1ex01 |
Sep 8 2013, 15:46
Пост
#23
|
round catcher) Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64 |
лепота)
теперь задача№2 модифицировать код так, чтобы из файла2 можно было получить файл1 -------------------- |
Alien |
Sep 8 2013, 15:56
Пост
#24
|
Разработчик MolDynGrid Група: Trusted Members Повідомлень: 569 З нами з: 7-October 07 Користувач №: 594 Стать: Чол Парк машин: Q6600 2.4@3.0GHz\Asus p5kc\8Gb\8600GT\2 SATA: Sams 500Gb+ 500Gb + Seagate 400Gb |
как насчет сделать аналогичную тему по питончику? кто у нас в нем спец? =)
-------------------- |
Waterfall |
Sep 11 2013, 16:47
Пост
#25
|
Эрудит Група: Trusted Members Повідомлень: 1 607 З нами з: 24-May 10 З: Україна,Одеса(Odessa) Користувач №: 1 401 Стать: Чол Парк машин: ПК: Pentium, 2.80 GHz Ноут:DELL Studio, 2.26 GHz |
Вам усім, по-моєму, краще сюди http://viknaodessa.od.ua/news/?news=78591
|
whynot |
Sep 15 2013, 20:15
Пост
#26
|
кранчер зі стажем Група: Trusted Members Повідомлень: 378 З нами з: 8-December 08 Користувач №: 882 Стать: Чол Free-DC_CPID jabber:whynot@jabster.pl |
модифицировать код так, чтобы из файла2 можно было получить файл1 Использование глагола "модифицировать" наводит на подозрение, что ТС неадкватно представляет себе задачу. Вместе с тем, это, конечно, не было легко, но так, "задача на одну трубку": CODE perl -MDigest -we ' $aa=Digest->new("SHA-256"); %ac=();$ad=0; while( $ab=STDIN->getline ){ chomp $ab; $ac{$ab} = [$ad++] } @ae=((0)x64); while(1){ $af=pack "C*",@ae; $ag=$aa->add($af)->b64digest; exists $ac{$ag} or next; push @{$ac{$ag}},$af; @{$ac{$ag}}>2 and die "CLASH!: $ag @ae\n"; print "found: $ag\n"; keys %ac == grep(@{$ac{$_}}==2,keys %ac) and last } continue{ $ae[0]++; $ad=0; while($ae[$ad]==256){$ae[$ad]=0;$ae[++$ad]++} @ae==65 and die "BUSTED!\n"; printf "\r[%3i]", $ad } foreach $ad (sort{$a->[0]<=>$b->[0]} values %ac){ print $ad->[1] }' Отличия от ТЗ: на вход принимаются base64 encoded, newline terminated строки. Глюкало мне не нравится; лучшим решением было бы писать развернутый буфер в STDERR (перенаправленный в /dev/null, ессно, а то будет больно) и лет через этак 200 подсмотреть в этом самом STDERR как далеко ушли. p.s. 200 лет это если использовать не стоковый Digest::SHA, а какой-нибудь XS на либу, которая считает на какой-нибудь Tesla. p.p.s. Проверять работоспособность, может быть, можно только на специально подготовленном входе. Очевидно, проверять на произвольном -- у меня есть лучшее применение циклам. p.p.p.s. Рекомендуется к прочтению, для повышения адекватности. -------------------- --
А ты готов к третьему майдану? |
A1ex01 |
Sep 16 2013, 15:28
Пост
#27
|
round catcher) Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64 |
Использование глагола "модифицировать" наводит на подозрение, что ТС неадкватно представляет себе задачу. улыбнуло, всегда же можно уточнить непонятки... задача№1 -это архиватор на базе sha2, поэтому предложил его(sha2) модифицировать для возможности обратной распаковки филе2, всего лишь... -------------------- |
Lo-Fi Версія | Поточний час: 10th November 2024 - 21:57 |