_bittestandcomplement, _bittestandcomplement64
[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]
Microsoft-spezifisch
Generieren Sie die btc-Anweisung, die die Adresse b Bit aüberprüft, seinen aktuellen Wert zurückgibt und das Bit in den entsprechenden Komplement festlegt.
unsigned char _bittestandcomplement(
long *a,
long b
);
unsigned char _bittestandcomplement64(
__int64 *a,
__int64 b
);
Parameter
[in, out] a
Ein Zeiger auf den zu überprüfenden Arbeitsspeicher.[in] b
Die Bitposition zu testen.
Rückgabewert
Das Bit an der Position angegeben.
Anforderungen
Intrinsisch |
Architektur |
---|---|
_bittestandcomplement |
x86, IPF, x64 |
_bittestandcomplement64 |
IPF, x64 |
Headerdatei <intrin.h>
Hinweise
Auf der IPF-Architektur ist die btc-Anweisung nicht verfügbar, sodass diese systeminterne eine benutzerdefinierte Funktion, die das Verhalten von btcnachahmt. Diese benutzerdefinierte Funktion ist möglicherweise langsamer als eine handgeschriebene Inlinefunktion, da sie Mehraufwand beinhaltet das Behandeln des Falls, in dem es unnötig ist negativ b , das in bestimmten Fällen werden.
Diese Routine ist als systeminterne Funktion nur 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
}
Beispielausgabe
Initial value: 1
Testing bit 1
Value changed to 3, Result: 0
Testing bit 0
Value changed to 0, Result: 1