битовый сдвиг массива байтов
- Войдите на сайт для отправки комментариев
Втр, 31/01/2017 - 23:38
вот есть массив
byte b[x];
00010010 00101101 00010101 11100101....
есть ли простой способ сдвинуть биты всего массива влево, убрав предыдущие нули? чтобы стало
10010001 01101000 10101111 00101000....
пока только лезет в голову конструкция с дублированием всего массива, типа выписываем два байта в темп байты, двигаем, кладем в конечный массив.
но может есть проще вариант, чтоб не выделять память под дублирующий массив и двинуть все разом на нужное количество бит, как << и >> операторы?
Вообще-то дублирующий массив не нужен. Просто в цикле брать некоторое количество бит в одном месте и складывать их в другое.
я думал, может как-то с указателями можно красиво сделать. но указателей на конкретный бит нет же..
Сдвиг на сколько битов нужен? На три, как в примере? Или на другое количество?
Да, на три. может и другое количество будет по факту данных, но в пределах 8 бит, так как полные нулевые 0b00000000 в начале я сразу убираю
А длина массива? Фиксированная или может быть любой?
100 байт всего.
Не, тогда надо честно делать, как коллега подсказывал. Ничего тут не придумаешь. Сто байтов уж больно много.
Я то думал там два-три-пять. Можно было бы просто поставить сдвиговые регистры каскадом. И сдвигать умеют сразу по всему каскаду, и места в памяти не занимают - они сами память. Но 100 сдвиговых регистров - перебор.
Не, тогда надо честно делать, как коллега подсказывал. Ничего тут не придумаешь. Сто байтов уж больно много.
Я то думал там два-три-пять. Можно было бы просто поставить сдвиговые регистры каскадом. И сдвигать умеют сразу по всему каскаду, и места в памяти не занимают - они сами память. Но 100 сдвиговых регистров - перебор.
Евгений Петрович, что-то как то Вы сразу сдались, каких то несчастных сто байт )))
как то Вы сразу сдались, каких то несчастных сто байт )))
Старею.
как то Вы сразу сдались, каких то несчастных сто байт )))
Старею.
Троллите ))) Да ну бросьте ))) Цикл числом в 100 двойной точности не одолеете ???
Там десяток команд на ассемблере жеж
Троллите ))) Да ну бросьте ))) Цикл числом в 100 двойной точности не одолеете ???
Там десяток команд на ассемблере жеж
Ну, Вы поймите, это проза. Скучная, рутинная проза. А вот присобачить сдвиговые регистры и сдвигать (а заодно и хранить) всё в них ... Помните у Владимира Семёновича: «Нет острых ощущений. Всё старьё, гнильё и хлам. Того гляди с тоски сыграю в ящик. Балкон бы что-ли сверху иль автобус пополам – вот это «боле-мене» подходяще».
Троллите ))) Да ну бросьте ))) Цикл числом в 100 двойной точности не одолеете ???
Там десяток команд на ассемблере жеж
Ну, Вы поймите, это проза. Скучная, рутинная проза. А вот присобачить сдвиговые регистры и сдвигать (а заодно и хранить) всё в них ... Помните у Владимира Семёновича: «Нет острых ощущений. Всё старьё, гнильё и хлам. Того гляди с тоски сыграю в ящик. Балкон бы что-ли сверху иль автобус пополам – вот это «боле-мене» подходяще».
Понял, в электронику вдарились )))
Как-то мне племянник, в бытность студент Бауманки, спрашивает, вот вы дядя знаете чем отличается D триггер от JK, ну естественно говорю, один тактируется фронтом сигнала, другой спадом...ВО-ВО...а я эту муть должен учить ))) а мне, молотобойцу, это учить было без надобности, интерес был )))
Троллите ))) Да ну бросьте ))) Цикл числом в 100 двойной точности не одолеете ???
Там десяток команд на ассемблере жеж
Ну, Вы поймите, это проза. Скучная, рутинная проза. А вот присобачить сдвиговые регистры и сдвигать (а заодно и хранить) всё в них ... Помните у Владимира Семёновича: «Нет острых ощущений. Всё старьё, гнильё и хлам. Того гляди с тоски сыграю в ящик. Балкон бы что-ли сверху иль автобус пополам – вот это «боле-мене» подходяще».
В точку! (выделил жирным шрифтом). Точно, стареем ;)
Троллите ))) Да ну бросьте ))) Цикл числом в 100 двойной точности не одолеете ???
Там десяток команд на ассемблере жеж
Ну, Вы поймите, это проза. Скучная, рутинная проза. А вот присобачить сдвиговые регистры и сдвигать (а заодно и хранить) всё в них ... Помните у Владимира Семёновича: «Нет острых ощущений. Всё старьё, гнильё и хлам. Того гляди с тоски сыграю в ящик. Балкон бы что-ли сверху иль автобус пополам – вот это «боле-мене» подходяще».
В точку! (выделил жирным шрифтом). Точно, стареем ;)
Одолела рутинная проза, тогда лекции о проектировании и производстве ASIC от Юрия Панчула вам в интерес или тексты парсить без процессора и без софтвера, ХАРД, жёсткий ХАРД )))
Сдвиг массива надо делать 3D принтером, там легко
Сдвиг массива надо делать 3D принтером, там легко
так не у всех есть такая игрушка
или тексты парсить без процессора и без софтвера, ХАРД, жёсткий ХАРД )))
Там в самом начале написано: "Внутри Ардуино стоит вполне фон-неймановский процессор". Дальше читать не стал :(
Тож пофлужу)
Эх, парни)).. Столько умов пропадает без дела))) Вас бы да на мои проекты...)
А в чём проблема? "Договор есть продукт при поном непротивлении сторон" :)
или тексты парсить без процессора и без софтвера, ХАРД, жёсткий ХАРД )))
Там в самом начале написано: "Внутри Ардуино стоит вполне фон-неймановский процессор". Дальше читать не стал :(
А напрасно, далее идёт описание как парсить текст чистой логикой (561ЛА7&...) )))
. ...Нет, я имею в виду парсинг текста устройством, состоящим из логических элементов И-ИЛИ-НЕ и Д-триггерами, как на картинке ниже...
а каково начало текста: А?
кто-то парсирует текстовый файл программой на Питоне, другой пишет скрипт с регулярными выражениями на Перле, Си-программист стыдливо возится с буферами и указателями, иногда применяя Yacc и Lex.
ХАРД, жёсткий ХАРД )))
Да не вопрос, типа совсем! Берём за полкопейки какойнить СТМ32Ф0 и тупо вырываем по четыре байта за раз. 25 операций сдвига на все 100 байт и 25 операций маски + туда-сюда при 48МГц за пару мкс легко одолевается. Ну и уж если полный ХАРД, типа РОКнРОЛЛ - юзаем СПИ. Первые три клока тупо отсекаем таймером хардварно, недостающие в конце биты - добиваем лишней транзакцией СПИ. Итого - 50+1 (16 бит) транзакция по СПИ это порядка 5 микросекунд. Если врубить ФУЛЛ-ХАРД-РОКнРОЛЛ в виде ДМА, то этого печального события, на фоне остального армагеддона, можно вообще и не заметить.
А в чём проблема? "Договор есть продукт при поном непротивлении сторон" :)
Это была хоть и шутка, но с большой долей правды. Намёк понял. Добавлю без шуток - хотелось бы чтоб у моих детей был такой дед.
Евгений, проблема в алгоритмах. Вы знаете - я делаю автоматику для теплиц. Это очень специфичная тема. Пытаю коллег на Гринтоке, книжки умные изучаю... Процесс идёт. Без чёткого алгоритма и толку нет обращаться к спецам.
А в чём проблема? "Договор есть продукт при поном непротивлении сторон" :)
Это была хоть и шутка, но с большой долей правды. Намёк понял. Добавлю без шуток - хотелось бы чтоб у моих детей был такой дед.
Евгений, проблема в алгоритмах. Вы знаете - я делаю автоматику для теплиц. Это очень специфичная тема. Пытаю коллег на Гринтоке, книжки умные изучаю... Процесс идёт. Без чёткого алгоритма и толку нет обращаться к спецам.
Пётр, всё давно уже сделано и для теплиц и для курятников, по последним к примеру средний сдаточный вес по курам был 2,5 килограмма, 10 % особей 4,5 килограмма, это за 56 дней техпроцесса (от суточного циплёнка), по теплицам мой приятель занимался, с карты гугла гляньте - посёлок Московский КЧР...
как 8 поменять на сотню, надеюсь понятно.
а каково начало текста: А?
кто-то парсирует текстовый файл программой на Питоне, другой пишет скрипт с регулярными выражениями на Перле, Си-программист стыдливо возится с буферами и указателями, иногда применяя Yacc и Lex.
Не, ну не для меня. Я старый человек и точно знаю, что настоящие программитсы пишут на Фортране. «Если вы не можете выполнить эти работы на Фортране, выполните их на ассемблере. Если же их нельзя выполнить на ассемблере, их не стоит делать вообще»
Пётр, всё давно уже сделано и для теплиц и для курятников...
Оборудование для многогектарных теплиц не подходит для небольших. Или есть примеры и для фермеских?
Пётр, всё давно уже сделано и для теплиц и для курятников...
Оборудование для многогектарных теплиц не подходит для небольших. Или есть примеры и для фермеских?
Это кто Вам такое сказал?
Вы знаете к примеру, что коммутатор сотовой связи сделан на I-386 процессорах, и нормально, справляется
а каково начало текста: А?
кто-то парсирует текстовый файл программой на Питоне, другой пишет скрипт с регулярными выражениями на Перле, Си-программист стыдливо возится с буферами и указателями, иногда применяя Yacc и Lex.
Не, ну не для меня. Я старый человек и точно знаю, что настоящие программитсы пишут на Фортране. «Если вы не можете выполнить эти работы на Фортране, выполните их на ассемблере. Если же их нельзя выполнить на ассемблере, их не стоит делать вообще»
Настоящие программисты пишут на Ямбе ))) а вот настоящие системные программисты на ассемблере
Настоящие программисты пишут на Ямбе ))) а вот настоящие системные программисты на ассемблере
Чего?????? .... как там говорила бессмертная Эллочка Щукина? .... "Не учите меня жить, парниша!" :)))
как 8 поменять на сотню, надеюсь понятно.
Не, не одолею...
в ассемблере то всё понятно, делаем сдвиг двойной точности, а сохраняем один байт ))) так как в другом - мусор
Оборудование для многогектарных теплиц не подходит для небольших. Или есть примеры и для фермеских?
Это кто Вам такое сказал?
Вы знаете к примеру, что коммутатор сотовой связи сделан на I-386 процессорах, и нормально, справляется
Ценником не подходит и сложностью в управлении. Там оператор спецкурсы проходит.
Чтобы не оффтопить, если есть интерес продолжать, то пожалуйте в мою тему
http://arduino.ru/forum/ishchu-ispolnitelya/upravlenie-mikroklimatom-tep...
Настоящие программисты пишут на Ямбе ))) а вот настоящие системные программисты на ассемблере
Чего?????? .... как там говорила бессмертная Эллочка Щукина? .... "Не учите меня жить, парниша!" :)))
Ездит тут у нас один на велосипеде, молодильных яблочек наелсси, он еще на ямбе писал...
И это не шутка, никогда не скажешь, что ему за 70, ну сороковник еще дать можно, но не более
ЗЫ а профессора Торопцева учили паскалю, когда ему было под 90, очень увлекательная вещь сказал )))
Оборудование для многогектарных теплиц не подходит для небольших. Или есть примеры и для фермеских?
Это кто Вам такое сказал?
Вы знаете к примеру, что коммутатор сотовой связи сделан на I-386 процессорах, и нормально, справляется
Ценником не подходит и сложностью в управлении. Там оператор спецкурсы проходит.
Чтобы не оффтопить, если есть интерес продолжать, то пожалуйте в мою тему
http://arduino.ru/forum/ishchu-ispolnitelya/upravlenie-mikroklimatom-tep...
Мне сегодня ЦАП пришёл, так что буду модернизировать свой контроллер, с ШИМом не задалось, как хотелось бы, а у вас там уже два года строится, думаю всё что хотелось - реализовали
a[i]=(a[i] сдвиг влево n)|(a[i+1] сдвиг вправо (8-n))
Первый байт обязательно содержит единицу, хотя бы одну или может состоять из всех нулей тоже? Сколько таких нулевых байтов может быть первыми? :)