Condividi tramite


_BitScanForward, _BitScanForward64

Sezione specifica Microsoft

Cercare un bit impostato (1) nei dati di maschera dal bit meno significativo (LSB) al bit più significativo (MSB).

unsigned char _BitScanForward(    unsigned long * Index,    unsigned long Mask ); unsigned char _BitScanForward64(    unsigned long * Index,    unsigned __int64 Mask );

Parametri

  • [out] Index
    Caricato con la posizione di bit del primo bit impostato (1) trovato.

  • [in] Mask
    Il valore a 32 bit o a 64 bit da cercare.

Valore restituito

0 se la maschera è zero; diverso da zero in caso contrario.

Note

Se viene trovato un bit impostato, viene restituita la posizione di bit del primo bit impostato trovato nel primo parametro. Se non viene trovato alcun bit impostato, viene restituito 0; in caso contrario, viene restituito 1.

Requisiti

Funzione intrinseca

Architettura

_BitScanForward

x86, ARM, x64

_BitScanForward64

ARM, x64

File di intestazione <intrin.h>

Esempio

// BitScanForward.cpp
// compile with: /EHsc
#include <iostream>
#include <intrin.h>
using namespace std;

#pragma intrinsic(_BitScanForward)

int main()
{
   unsigned long mask = 0x1000;
   unsigned long index;
   unsigned char isNonzero;
   
   cout << "Enter a positive integer as the mask: " << flush;
   cin >> mask;
   isNonzero = _BitScanForward(&index, mask);
   if (isNonzero)
   {
      cout << "Mask: " << mask << " Index: " << index << endl;
   }
   else
   {
      cout << "No set bits found.  Mask is zero." << endl;
   }
}

Input

12

Esempio di output

Enter a positive integer as the mask: 
Mask: 12 Index: 2

Vedere anche

Riferimenti

Intrinseci del compilatore