Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Сам изачот.. :-)) Использовать перенос имеет смысл только при сдвиге на один бит, а аффтару надо на произвольное число бит, так что перенос там не поможет (+)

Отправлено Dr.Alex 31 августа 2007 г. 17:05
В ответ на: Вряд ли компилер, даже "нормальный", сумеет эффективно (или вообще даже) воспользоваться битом переноса в цепочке сдвигов, поэтому функция получится масочно-сдвигово-фиговой и будет уступать АСМовой в разы и больше. Низачот отправлено =AVR= 31 августа 2007 г. 16:58

Сдвиг, к примеру, лонга на С выглядит так:

unsigned long ROTL (unsigned long value, char bits)
{
return (((value) << (bits)) | ((value) >> (32 - (bits))));

Думаете, вы эту простейшую конструкцию эффективнее откомпилите, чем компилер? Ну-ну.. :-))
Если аффтару массив нужен, то запись на С будет конечно длиннее, но код будет тот же самый (если конечно проц не 32битный), так как от длины тут ничё не зависит.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru