Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Microsoft-spezifisch
Suchen Sie die Maskendaten vom höchstwertigen Bit (MSB) bis zum niedrigstwertigen Bit (LSB) für ein festgelegtes Bit (1).
Syntax
unsigned char _BitScanReverse(
unsigned long * Index,
unsigned long Mask
);
unsigned char _BitScanReverse64(
unsigned long * Index,
unsigned __int64 Mask
);
Parameter
Index
[out] Geladen mit der Bitposition des ersten festgelegten Bits (1). Andernfalls wird er nicht definiert.
Maske
[in] Der zu durchsuchende 32-Bit- oder 64-Bit-Wert.
Rückgabewert
Nonzero, wenn ein Bit in Maskoder 0 festgelegt wurde, wenn keine festgelegten Bits gefunden wurden.
Anforderungen
| Intrinsic | Aufbau | Header |
|---|---|---|
_BitScanReverse |
x86, ARM, x64, ARM64 | <intrin.h> |
_BitScanReverse64 |
ARM64, x64 | <intrin.h> |
Beispiel
// BitScanReverse.cpp
// compile with: /EHsc
#include <iostream>
#include <intrin.h>
using namespace std;
#pragma intrinsic(_BitScanReverse)
int main()
{
unsigned long mask = 0x1000;
unsigned long index;
unsigned char isNonzero;
cout << "Enter a positive integer as the mask: " << flush;
cin >> mask;
isNonzero = _BitScanReverse(&index, mask);
if (isNonzero)
{
cout << "Mask: " << mask << " Index: " << index << endl;
}
else
{
cout << "No set bits found. Mask is zero." << endl;
}
}
12
Enter a positive integer as the mask:
Mask: 12 Index: 3
Ende Microsoft-spezifisch