Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > побитовые операции


Автор: Веталька 27.1.2010, 17:49
Доброго времени суток однофорумчане,  есть масив который для упрощения работы был задан в таком виде:
Код

Код

1    1    0    0    0    0    1    0    0
0    0    0    1    1    0    0    0    1
0    0    0    0    1    1    1    1    0
0    1    0    0    0    1    0    0    1
1    0    1    0    1    1    0    0    0
0    0    1    1    0    0    0    1    0
1    0    0    1    0    0    1    1    1



A[7] = { 0x184, 0x31, 0x1E, 0x89, 0x158, 0x62, 0x127 };


  0x184 = 110000100
  0х31 =   000110001
  ...............................
теперь появилась необходимость наложить елементы масива один на другой, тоесть 

0x184 (110000100)  наложить на 0х31 (000110001) в риезультате наложения должно получится 110110101 и так дальше....если сложить все елементы то должна получится строчка 111111111

подскажите как ето прорамно реалитзовать

Автор: mes 27.1.2010, 18:02
Цитата(Веталька @  27.1.2010,  16:49 Найти цитируемый пост)
л задан в таком виде:

что то кода не видно.. глюк или Вы забыли ?

Цитата(Веталька @  27.1.2010,  16:49 Найти цитируемый пост)
0x184 (110000100)  наложить на 0х31 (000110001) в результате наложения должно получится 110110101 

оператор |

Автор: Веталька 27.1.2010, 18:21
mes,

Цитата

Цитата

Цитата(Веталька @  27.1.2010,  16:49 )
л задан в таком виде:



что то кода не видно.. глюк или Вы забыли ?

нет я просто подумал что не нужно его выкладывать так как ето лаборатарная работа задание которой было усложнено, а с "наложением" у меня ничего не получилось, вот обявления масива:
Код

long  A[7] = { 0x184, 0x31, 0x1E, 0x89, 0x158, 0x62, 0x127 };



Цитата

Цитата

Цитата(Веталька @  27.1.2010,  16:49 )
0x184 (110000100)  наложить на 0х31 (000110001) в результате наложения должно получится 110110101 



оператор |


можно подробнее или даже  smile 

Автор: artsb 27.1.2010, 18:35
Код

long res = A[0] | A[1] |  A[2] | A[3] |  A[4] | A[5] |  A[6];

Автор: mes 27.1.2010, 18:37
Цитата(Веталька @  27.1.2010,  17:21 Найти цитируемый пост)
можно подробнее или даже 

Код
 
/*unsigned */ long res = 0;
for (size_t i=0; i<7; ++i)  res |= A[i];


Автор: Веталька 27.1.2010, 18:38
mes,artsb, спасибо, ответ оказался неожидыно легким))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)