Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Voert een bitsgewijze logische NOT-bewerking uit op een geheel getal.
Transact-SQL syntaxis-conventies
Syntax
~ expression
Arguments
expression
Is een geldige expressie van een van de gegevenstypen van de categorie geheel getal, de bit of de binaire of varbinaire gegevenstypen.
expressie wordt behandeld als een binair getal voor de bitsgewijze bewerking.
Note
Slechts één expressie kan van het binaire of varbinaire gegevenstype zijn in een bitsgewijze bewerking.
Result Types
int als de invoerwaarden int zijn.
smallint als de invoerwaarden klein zijn.
kleineint als de invoerwaarden klein zijn.
bit als de invoerwaarden bit zijn.
Remarks
De ~ bitsgewijze operator voert een bitsgewijze logische NOT voor de expressie uit, waarbij elke bit op zijn beurt wordt gebruikt. Als de expressie een waarde van 0 heeft, worden de bits in de resultatenset ingesteld op 1; anders wordt de bit in het resultaat gewist tot een waarde van 0. Met andere woorden, degenen worden gewijzigd in nullen en nullen worden gewijzigd in nullen.
Important
Wanneer u een willekeurige bitwise bewerking uitvoert, is de opslaglengte van de expressie die in de bitsgewijze bewerking wordt gebruikt, belangrijk. U wordt aangeraden hetzelfde aantal bytes te gebruiken bij het opslaan van waarden. Als u bijvoorbeeld decimaalwaarde van 5 opslaat als een kleineint, kleineint of int , wordt een waarde geproduceerd die is opgeslagen met verschillende getallen van bytes: tinyint slaat gegevens op met behulp van 1 byte; smallint slaat gegevens op met 2 bytes en int slaat gegevens op met 4 bytes. Daarom kan het uitvoeren van een bitsgewijze bewerking op een int decimale waarde verschillende resultaten opleveren van die met behulp van een directe binaire of hexadecimale vertaling, met name wanneer de ~ operator (bitwise NOT) wordt gebruikt. De bitwise NOT-bewerking kan optreden op een variabele van een kortere lengte. In dit geval, wanneer de kortere lengte wordt geconverteerd naar een langere gegevenstypevariabele, worden de bits in de bovenste 8 bits mogelijk niet ingesteld op de verwachte waarde. U wordt aangeraden de kleinere gegevenstypevariabele te converteren naar het grotere gegevenstype en vervolgens de BEWERKING NOT uit te voeren op het resultaat.
Examples
In het volgende voorbeeld wordt een tabel gemaakt met behulp van het int-gegevenstype om de waarden op te slaan en de twee waarden in één rij in te voegen.
CREATE TABLE bitwise (
a_int_value INT NOT NULL,
b_int_value INT NOT NULL);
GO
INSERT bitwise VALUES (170, 75);
GO
Met de volgende query wordt de bitsgewijze NOT op de a_int_value en b_int_value kolommen uitgevoerd.
SELECT ~ a_int_value, ~ b_int_value
FROM bitwise;
Dit is de resultatenset:
--- ---
-171 -76
(1 row(s) affected)
De binaire weergave van 170 (a_int_value of A) is 0000 0000 0000 0000 0000 0000 1010 1010. Het uitvoeren van de bitsgewijze NOT-bewerking op deze waarde produceert het binaire resultaat 1111 1111 1111 1111 1111 1111 0101 0101, dat decimaal -171 is. De binaire weergave voor 75 is 0000 0000 0000 0000 0000 0000 0100 1011. Als u de bitsgewijze NOT-bewerking uitvoert 1111 1111 1111 1111 1111 1111 1011 0100, is dit decimaal -76.
(~A)
0000 0000 0000 0000 0000 0000 1010 1010
---------------------------------------
1111 1111 1111 1111 1111 1111 0101 0101
(~B)
0000 0000 0000 0000 0000 0000 0100 1011
---------------------------------------
1111 1111 1111 1111 1111 1111 1011 0100
See Also
Expressions (Transact-SQL)
Operators (Transact-SQL)
Bitwise Operators (Transact-SQL)