реклама на сайте
подробности

 
 
> Перестановка битов в байте., реализация на C (CVAVR)
ps1x
сообщение Aug 27 2006, 19:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Как красивее всего сделать перестановку 7 и 8 битов в байте?
Дело в том, что развел и распаял плату и понял что ошибся, а все это заново делать честно говоря лень.
Объясните пожалуйста, как это можно реализовать программно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Edmundo
сообщение Aug 27 2006, 19:47
Сообщение #2


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(ps1x @ Aug 27 2006, 23:09) *
Как красивее всего сделать перестановку 7 и 8 битов в байте?
Дело в том, что развел и распаял плату и понял что ошибся, а все это заново делать честно говоря лень.
Объясните пожалуйста, как это можно реализовать программно.

В книге "Алгоритмические трюки для программистов" есть разные красивые алгоритмы перестановки, помню взял оттуда бит-реверсию для байта. Выглядело так:
Код
static inline unsigned char BitReverse(unsigned char cByte)
{
    int nU = (cByte*0x00020202),
        nM = 0x01044010,
        nS = nU & nM,
        nT = (nU << 2) & (nM << 1);
    return ((nS+nT)*0x01001001) >> 24;
}


Насчет 7 и 8-го посмотреть надо.

О том, где можно найти книгу, здесь.

Сообщение отредактировал Edmundo - Aug 27 2006, 19:55


--------------------
شامل
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 06:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016