Мне было интересно, есть ли способ замаскировать список значений int с помощью побитовых операторов и использовать эту маску, чтобы узнать, является ли значение int одним из значений, которые находятся в маске.
то есть, если у меня есть значения 129 и 17, как я могу рассчитать маску, которая сообщает мне, соответствует ли значение int в маске (если значение int равно 129 или 17).
Я ожидаю, что моя проблема будет лучше понята со следующим псевдокодом.
**EDIT: я хочу упаковать, замаскировать или «сжать» массив int только в одно значение (маску), а затем принять только те значения, которые находятся в списке значений для маскирования (массив).
Является ли это возможным? Заранее спасибо.
valuesToMask = [17, 129, ...]
mask = getmask(valuesToMask)
lstValues = [0,1, 10, ..., 17, 18, 19, ..., 129, ...]
foreach(int value, in lstValues) {
if(check(mask,value))
printf("\nValue %d is in the mask", value);
else
printf("\nValue %d is not in the mask", value);
}
Заранее спасибо. Я очень ценю вашу помощь и ваше время.
(Извините за мой английский)