|
Операция с битами 3 бинарных чисел. |
|
|
|
Dec 10 2009, 19:31
|

Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669

|
Цитата(zheka @ Dec 10 2009, 21:10)  В общем ТЗ окончательно сформировалось и выглядит несколько по-иному. Задача следующая: имеется 7 бит: yyyxxxx , из которых 3мя (yyy )нужно управлять, а 4 (xxxx) не трогать есть число из 8 бит типа aaaaaaaa. нужно взять 3 младшие бита и поместить их на место yyy, при этом не тронув биты xxxx. Чтоы получилось в итоге aaaxxxx Попробую сформулировать конкренее: Дано: байт A=z7 y6 y5 y4 x3 x2 x1 x0 и бай B=a7 a6 a5 a4 a3 a2 a1 a0 где a, x, y, z могут принимать значения 0 или 1 (цифра справа от символа означает позицию бита в байте) Требуется: сформировать байт C следующего вида: C=Z7 a6 a5 a4 x3 x2 x1 x0 Вам это требуется?
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 10 2009, 20:07
|

Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669

|
Цитата(SasaVitebsk @ Dec 10 2009, 22:58)  Что-то я не пойму. А что так не проходит?
c = (a & 0x8f)|(b & 0x70); Я сам тоже не могу понять, а может ему надо C=z7 a2 a1 a0 x3 x2 x1 x0 или C=z7 a0 a5 a2 x1 x0 x2 x3 ...... вариантов то много...... Нам бы схемку аль чертеж -мы б затеяли вертеж, Ну а так - ищи что хочешь Черта лысого найдешь.
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 10 2009, 21:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(IJAR @ Dec 10 2009, 22:31)  Попробую сформулировать конкренее: Дано: байт A=z7 y6 y5 y4 x3 x2 x1 x0 и бай B=a7 a6 a5 a4 a3 a2 a1 a0 где a, x, y, z могут принимать значения 0 или 1 (цифра справа от символа означает позицию бита в байте)
Требуется: сформировать байт C следующего вида: C=Z7 a6 a5 a4 x3 x2 x1 x0
Вам это требуется? Я думаю, раз автор просил взять младшие 3 бита, то нужно ему получить: C=Z7 a2 a1 a0 x3 x2 x1 x0 Цитата(SasaVitebsk @ Dec 10 2009, 22:58)  Что-то я не пойму. А что так не проходит?
c = (a & 0x8f)|(b & 0x70); Учитывая вышесказанное, наверное, так: Код a = (a & 0x8f) | ( (b & 0x07) << 4);
Сообщение отредактировал des333 - Dec 10 2009, 21:32
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|