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
Erzeugen Sie eine Anweisung, die Bit b der Adresse a untersucht, den aktuellen Wert zurückgibt und das Bit auf seiner Ergänzung setzt.
Syntax
unsigned char _bittestandcomplement(
long *a,
long b
);
unsigned char _bittestandcomplement64(
__int64 *a,
__int64 b
);
Parameter
a
[in, out] Ein Zeiger auf den zu untersuchenden Speicher.
b
[in] Die zu testde Bitposition.
Rückgabewert
Das Bit an der angegebenen Position.
Anforderungen
| Intrinsic | Aufbau |
|---|---|
_bittestandcomplement |
x86, ARM, x64, ARM64 |
_bittestandcomplement64 |
x64, ARM64 |
Headerdatei<intrin.h>
Hinweise
Diese Routine ist nur als systeminterne Funktion verfügbar.
Beispiel
// bittestandcomplement.cpp
// processor: x86, IPF, x64
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(_bittestandcomplement)
#ifdef _M_AMD64
#pragma intrinsic(_bittestandcomplement64)
#endif
int main()
{
long i = 1;
__int64 i64 = 0x1I64;
unsigned char result;
printf("Initial value: %d\n", i);
printf("Testing bit 1\n");
result = _bittestandcomplement(&i, 1);
printf("Value changed to %d, Result: %d\n", i, result);
#ifdef _M_AMD64
printf("Testing bit 0\n");
result = _bittestandcomplement64(&i64, 0);
printf("Value changed to %I64d, Result: %d\n", i64, result);
#endif
}
Initial value: 1
Testing bit 1
Value changed to 3, Result: 0
Testing bit 0
Value changed to 0, Result: 1
Ende Microsoft-spezifisch