Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Wykonuje bitową operację logiczną NOT na wartości całkowitej.
Transact-SQL konwencje składni
Syntax
~ expression
Arguments
expression
Jest dowolnym prawidłowym wyrażeniem dowolnego z typów danych kategorii typu danych całkowitych, bitu lub binarnych lub varbinary .
Wyrażenie jest traktowane jako liczba binarna dla operacji bitowej.
Note
Tylko jedno wyrażenie może być typu danych binarnych lub varbinary w operacji bitowej.
Typy wyników
int , jeśli wartości wejściowe są int.
smallint, jeśli wartości wejściowe są małe.
tinyint , jeśli wartości wejściowe są małe.
bit , jeśli wartości wejściowe są bitowe.
Remarks
Operator ~ bitowy wykonuje bitową wartość logiczną NOT dla wyrażenia, biorąc każdy bit z kolei. Jeśli wyrażenie ma wartość 0, bity w zestawie wyników są ustawione na 1; w przeciwnym razie bit w wyniku jest czyszczone na wartość 0. Innymi słowy, te są zmieniane na zera, a zera są zmieniane na te.
Important
Podczas wykonywania dowolnej operacji bitowej długość magazynu wyrażenia używanego w operacji bitowej jest ważna. Zalecamy użycie tej samej liczby bajtów podczas przechowywania wartości. Na przykład przechowywanie wartości dziesiętnej 5 jako małego, małego lub int tworzy wartość przechowywaną z różnymi liczbami bajtów: tinyint przechowuje dane przy użyciu 1 bajtu; smallint przechowuje dane przy użyciu 2 bajtów, a int przechowuje dane przy użyciu 4 bajtów. W związku z tym wykonywanie operacji bitowej na wartości dziesiętnej int może generować różne wyniki od tych, które używają bezpośredniego translacji binarnej lub szesnastkowej, zwłaszcza gdy ~ jest używany operator (bitowy NOT). Bitowa operacja NOT może wystąpić na zmiennej o krótszej długości. W takim przypadku, gdy krótsza długość jest konwertowana na dłuższą zmienną typu danych, bity w górnej 8 bitach mogą nie być ustawione na oczekiwaną wartość. Zalecamy przekonwertowanie mniejszej zmiennej typu danych na większy typ danych, a następnie wykonanie operacji NOT na wyniku.
Examples
Poniższy przykład tworzy tabelę przy użyciu typu danych int do przechowywania wartości i wstawia dwie wartości do jednego wiersza.
CREATE TABLE bitwise (
a_int_value INT NOT NULL,
b_int_value INT NOT NULL);
GO
INSERT bitwise VALUES (170, 75);
GO
Następujące zapytanie wykonuje bitowe not na kolumnach a_int_value i b_int_value .
SELECT ~ a_int_value, ~ b_int_value
FROM bitwise;
Oto zestaw wyników:
--- ---
-171 -76
(1 row(s) affected)
Binarna reprezentacja wartości 170 (a_int_value lub A) to 0000 0000 0000 0000 0000 0000 1010 1010. Wykonanie bitowej operacji NOT na tej wartości powoduje wygenerowanie wyniku 1111 1111 1111 1111 1111 1111 0101 0101binarnego , który jest dziesiętny -171. Reprezentacja binarna dla wartości 75 to 0000 0000 0000 0000 0000 0000 0100 1011. Wykonanie bitowej operacji NOT powoduje wygenerowanie 1111 1111 1111 1111 1111 1111 1011 0100wartości , która jest dziesiętna -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
Zobacz też
Wyrażenia (Transact-SQL)
Operatory (Transact-SQL)
Operatory bitowe (Transact-SQL)