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

 
 
> поменять местами биты в байте, простой вопрос
Vny4ek
сообщение Apr 25 2010, 19:34
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Ребят подскажите плиз как реализовать ума не приложу.
принимаю данные с шины и с первого байта приходящего забиваю в буфер
например буфер байт temp[4]={0x72,0x8C,0x23,0x6B};
потом в ходе выполнения программы оказывается нужно еще эти биты использовать но не слева направа формировать из бит байт а справа на лево
например 0х72=01110010b у меня первый байт принятый, а нужно что бы он стал последним, тоесть взять данные и записать их например в другой массив, но использовать биты не слева направо а справа налево тоесть эти биты 0х72=01110010b которые у меня были первыми на самом деле сформировывать должны последний байт и получается 0х9С. Переписывать процедуру приема можно конечно но мне нужно и так и так. Как проще сделать подскажите пожалуста. Пишу на Си для кодвижен
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vny4ek
сообщение Apr 26 2010, 05:33
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



я проще себе это представлял, не знаю только как на языке реализовать:
например
проверяем значение правого бита и присваиваем его левому биту нового байта
далее сдвигаем на 1 в исходном байте вправо (2ой по счету бит справа становится снова 1ым)
также сдвигаем влево на 1 биты в новом байте и повторяем процедуру. так 8 раз
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 26 2010, 06:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Vny4ek @ Apr 26 2010, 07:33) *
я проще себе это представлял, не знаю только как на языке реализовать:

Все плохо, Вы, как оказалось, не только написать не можете, но и прочитать уже написанное sad.gif. Ибо все варианты с циклом в таком стиле и делают.
Надо учить язык.


Цитата(baralgin @ Apr 26 2010, 00:31) *
Насчёт 0x01: не корректно. Потому что компилятор умудряется считать результат до исполнения smile.gif .

Вообще-то причина не в этом, а том, что цикл будет прерван как только закончатся единичные биты в старшей части байта.
Цитата
оказывается что даже инструкции специальные для этого бывают smile.gif ).

А когда не бывают, можно сопроцессор smile.gif поставить. Много лет назад, когда по ошибке разработчиков периферийного оборудования (несколько стативов) на CPU на шустром (аж целых 12MHz) 80286 сыпались 32 последовательных потока из развернутых байт, поставил в помощь к процессору 8bit регистр с выходами перекрестно запаралеленными на входы. Записал в него байт и считал развернутым.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vny4ek   поменять местами биты в байте   Apr 25 2010, 19:34
- - zltigo   Цитата(Vny4ek @ Apr 25 2010, 21:34) 0х72=...   Apr 25 2010, 19:45
|- - aaarrr   Цитата(zltigo @ Apr 25 2010, 23:45) Не хи...   Apr 25 2010, 19:47
- - ASN   Vny4ek тут есть   Apr 25 2010, 19:53
- - Vny4ek   я это вижу как цикл на 8 шагов где проверяется зна...   Apr 25 2010, 20:04
- - baralgin   Сумбурное описание, но если правильно понял то тип...   Apr 25 2010, 20:04
|- - demiurg_spb   Если вопрос звучал так: "Как зеркалить биты в...   Apr 25 2010, 20:53
- - KRS   IMHO цикл тут неоптимален. Можно же стандартный сп...   Apr 25 2010, 20:46
- - baralgin   Цитата(KRS @ Apr 25 2010, 23:46) Можно же...   Apr 25 2010, 20:57
|- - zltigo   Цитата(baralgin @ Apr 25 2010, 22:57) Цик...   Apr 25 2010, 21:12
- - baralgin   Не поленился, проверил (плохая привычка меряться.....   Apr 25 2010, 21:55
|- - zltigo   Цитата(baralgin @ Apr 25 2010, 23:55) Не ...   Apr 25 2010, 22:04
|- - KRS   Цитата(baralgin @ Apr 26 2010, 01:55) ps:...   Apr 25 2010, 22:07
- - baralgin   Цитата(zltigo @ Apr 26 2010, 01:04) Сильн...   Apr 25 2010, 22:31
- - KRS   Для AVR все равно быстрее так Кодuint8_t rsb(u...   Apr 26 2010, 07:56
|- - zltigo   Цитата(KRS @ Apr 26 2010, 09:56) Для AVR ...   Apr 26 2010, 08:14
|- - demiurg_spb   Цитата(KRS @ Apr 26 2010, 11:56) Даже есл...   Apr 26 2010, 20:59
||- - MrYuran   Цитата(demiurg_spb @ Apr 27 2010, 00:59) ...   Apr 27 2010, 09:06
|- - x736C   Цитата(KRS @ Apr 26 2010, 11:56) Для AVR ...   Apr 27 2010, 01:53
|- - singlskv   Цитата(x736C @ Apr 27 2010, 05:53) С перв...   Apr 27 2010, 20:58
|- - x736C   Цитата(singlskv @ Apr 28 2010, 00:58) у В...   Apr 28 2010, 00:36
|- - singlskv   Цитата(x736C @ Apr 28 2010, 04:36) Перепр...   Apr 28 2010, 08:03
- - Vny4ek   ЦитатаВсе плохо, Вы, как оказалось, не только напи...   Apr 26 2010, 17:12
|- - smac   Цитата(Vny4ek @ Apr 26 2010, 21:12) Инфы ...   Apr 26 2010, 19:45
- - sigmaN   Vny4ek вот как-то так: установить бит в байтеКодb ...   Apr 26 2010, 19:55
- - Vny4ek   sigmaN, спасибо большое. То что написали после вас...   Apr 27 2010, 05:02
|- - zltigo   Цитата(Vny4ek @ Apr 27 2010, 07:02) sigma...   Apr 27 2010, 07:35
- - sergeeff Jr.   Я по простому сделал (как и сказали, при помощи та...   Apr 27 2010, 06:15
- - akl   Может.   Apr 27 2010, 09:16
- - sergeeff Jr.   Блин крутые специалисты, вы проблему решаете или п...   Apr 27 2010, 22:55
|- - aaarrr   Цитата(sergeeff Jr. @ Apr 28 2010, 02:55)...   Apr 27 2010, 23:29
- - sergeeff Jr.   Я решаю задачи (взяв AVR с большим количеством пам...   Apr 28 2010, 00:09
|- - aaarrr   Цитата(sergeeff Jr. @ Apr 28 2010, 04:09)...   Apr 28 2010, 00:22
- - sigmaN   ЦитатаА во вторых человек настолько хреново разбир...   Apr 28 2010, 02:55
|- - ASN   sergeeff Jr Тут речь не оптимизации ради оптимизац...   Apr 28 2010, 15:21
- - x736C   Да, облажался. Мне показалось, АВР делает цикличес...   Apr 28 2010, 09:04
- - sergeeff Jr.   Такое впечатление, что все ваши начальники понимаю...   Apr 28 2010, 13:56
|- - zltigo   Цитата(sergeeff Jr. @ Apr 28 2010, 15:56)...   Apr 28 2010, 14:11
|- - aaarrr   Цитата(sergeeff Jr. @ Apr 28 2010, 17:56)...   Apr 28 2010, 14:13
- - sergeeff Jr.   Байт конечно, очепятался я. Я не говорил, что я н...   Apr 28 2010, 16:49
|- - KRS   Цитата(sergeeff Jr. @ Apr 28 2010, 20:49)...   Apr 28 2010, 22:11
- - sergeeff   Если обратите внимание, в последних книгах по прог...   Apr 28 2010, 17:35
- - aaarrr   Цитата(sergeeff Jr. @ Apr 28 2010, 20:49)...   Apr 28 2010, 18:05
- - sergeeff   Это все на тему - сделать работоспособное устройст...   Apr 28 2010, 20:41
- - Vny4ek   Всем большое спасибо за помощь. Сам понимаю что ту...   Apr 30 2010, 06:27


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:04
Рейтинг@Mail.ru


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