Цитата(Alex03 @ Jul 1 2008, 15:29)

Не знаю насколько оптимально на АРМ и для байтика, но на С и без циклов/ветвлений.
Код
unsigned char c;
c = ((c>>1) & 0x55) | ((c<<1) & 0xAA);
c = ((c>>2) & 0x33) | ((c<<2) & 0xCC);
c = ((c>>4) & 0x0F) | ((c<<4) & 0xF0);
Для 32-х разрядов добавляется ещё 2 строчки.
PS можно ещё упростить немного.
круто все работает. Спасибо.
Цитата(АДИКМ @ Jul 1 2008, 15:47)

если хочется экзотики - порты перехлестните.
Порты и так пришлось перевернуть, т.к. разводка по другому не получалась, теперь приходится думать как лучше управлять перевернутыми портами.
В принципе предложено два варианта реализующих задачу максимально эффективно, поэтому думаю что дискуссию можно окончить.