#c
#c
Вопрос:
Как использовать
_BitScanReverse64(unsigned long * Index, unsigned __int64 Mask)
для того, чтобы найти первую позицию, равную 1 в integer?
Комментарии:
1. чего конкретно вы не понимаете в документах и примере для этой функции в msdn
2. @Mat Я не понимаю, как должен быть установлен параметр маски (в какое значение)
3. @Oli спасибо, я бы хотел, чтобы они могли назвать это несколько менее запутанным.
Ответ №1:
Попробуйте это:
unsigned __int64 mask = some_value;
unsigned long index;
unsigned char isNonzero = _BitScanReverse64(amp;index, mask);
if (!isNonzero) {
// index variable contains index of the first bit set to 1
}
Комментарии:
1. Да, вы получите позицию первого бита, равную 1 в переменной mask.