LINUX.ORG.RU

Логические операции


0

0

Есть число в котором все биты установлены в 1. Есть массив чисел кратных 2, т.е в них единице равен только один бит. Нужно сбросить в первом числе все биты которые соответствуют битам в массиве.

Я думал использовать xor, но вот числа в массиве могут повторятся.. т.е можно вместо нулевого бита получить установленый в 1.

Есть какие-нибудь предложения?

Язык программирования С.

★★★★

Имею в виду, чтобы без всяких громоздких проверок каждого числа в массиве.

OxiD ★★★★
() автор топика

твоё_число & (~ (массив[0] | массив[1] | ... | массив[N-1]) )

theserg ★★★
()

for (i = 0; i < sizeof(array) / sizeof(array[0]); i++) value &= ~(array[i]);

как нибудь так, если я правильно понял постановку задачи...

anonymous
()
Ответ на: комментарий от anonymous

Спасибо )) То что надо.

OxiD ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.