Большой Воронежский Форум
» Программирование>Как наиолее рационально сдвинуть бит?
-=Женек=- 18:46 26.11.2009
Господа, есть задачка.
Имеется HEX-число. Его старшие 4 бита значащие, младшие всегда равны нулю. Нужно 4-й бит переместить на позицию третьего. Ну и в итоге получить HEX-число.
Как наиболее рационально и с меньшим числом операций? Важно быстродействие. [Ответ]
-=Женек=- 18:50 26.11.2009
В общем смысл в чем, есть программа для AVR-контроллера, использующая 4 старших бита одного из портов. 4-й бит выгорел, но есть свободная ножка третьего бита. Хочу ее использовать. [Ответ]
Part!zan 19:44 26.11.2009
с системой команд avr не знаком, а на сях будет как-то так: ((a>>3)<<2)|(a&3), где а - старший полубайт [Ответ]
-=Женек=- 20:05 26.11.2009
Вообще-то я оперирую с целым байтом.
Пришел к такому решению:
a |= (a & 0x10) >> 1. [Ответ]
Part!zan 21:30 26.11.2009
-=Женек=-, я как-то привык биты с 1 нумеровать... [Ответ]
-=Женек=- 22:09 26.11.2009
Ну в классическом с может быть и нет привязки к номеру бита, типа variable[bit_number], а вот в AVR идет четкое обращение к ножке - PORTC.0 [Ответ]
Вверх