~ (Bitowe NOT) (języka Transact-SQL)
Bitowe NOT logiczne wykonuje operację na wartość całkowitą.
~ expression
Argumenty
expression
Is any valid expression of any one of the data types of the integer data type category, the bit, or the binary or varbinary data types.expression is treated as a binary number for the bitwise operation.Uwaga
Tylko jeden expression może być: binary lub varbinary Typ danych w operacja bitowa.
Typy wynik
int w przypadku wartości wejściowych int.
smallint w przypadku wartości wejściowych smallint.
tinyint w przypadku wartości wejściowych tinyint.
bit w przypadku wartości wejściowych bit.
Remarks
The ~ bitwise operator performs a bitwise logical NOT for the expression, taking each bit in turn.Jeśli expression ma wartość 0, liczba bitów zestaw wyników są ustawione na 1; w przeciwnym wypadku bit w wyniku nie jest zaznaczone na wartość 0. Innymi słowy takich, które są zamieniane na zera i zera są zamieniane na takich, które.
Important Note: |
---|
Podczas wykonywania jakiejkolwiek operacja bitowa długość przechowywania wyrażenie używane w operacja bitowa jest ważna.Firma Microsoft zaleca, aby używać tego samego liczba bajtów przechowywania wartości.Na przykład, przechowywanie wartości dziesiętne 5, tinyint, smallint, lub int tworzy wartości przechowywane razem z różnej liczby bajtów: tinyint przechowuje dane za pomocą 1 bajt. smallint przechowuje dane przy użyciu 2 bajty, a int przechowuje dane za pomocą 4 bajty. W związku z tym, wykonywanie operacja bitowa na int Wartość dziesiętna może wygenerować różne wyniki od tych, za pomocą bezpośredniego translacji binarny lub szesnastkowy, szczególnie wtedy, gdy ~ (nie na poziomie bitowym) używany jest operator. Bitowe operacja nie może występować w zmiennej długości krótszy.W takim przypadek konwertowania krótszy okres dłuższy zmiennej typu danych bitów w górnym 8 bitów nie zestaw na wartość oczekiwana.Firma Microsoft zaleca konwersji mniejszych zmiennej typu danych większych typ danych, a następnie wykonaj operację NOT na wynik. |
Przykłady
W następującym przykładzie zostanie utworzony przy użyciu tabela int dane wpisz do przechowywania wartości i wstawia te dwie wartości w jednym wierszu.
USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'bitwise')
DROP TABLE bitwise;
GO
CREATE TABLE bitwise
(
a_int_value int NOT NULL,
b_int_value int NOT NULL
);
GO
INSERT bitwise VALUES (170, 75);
GO
Następująca kwerenda wykonuje bitowe nie na a_int_value i b_int_value kolumny.
USE tempdb;
GO
SELECT ~ a_int_value, ~ b_int_value
FROM bitwise;
Poniżej znajduje się zestaw wyników:
--- ---
-171 -76
(1 row(s) affected)
Reprezentacja binarna 170 (a_int_value lub A) jest 0000 0000 1010 1010. Wykonywanie bitowe nie operacji na wartość ta daje wynik binarne 1111 1111 0101 0101, czyli-171 dziesiętnej. Jest reprezentacja binarna do 75 0000 0000 0100 1011. Bitowe wykonanie operacji nie daje 1111 1111 1011 0100, czyli-76 dziesiętnej.
(~A)
0000 0000 1010 1010
-------------------
1111 1111 0101 0101
(~B)
0000 0000 0100 1011
-------------------
1111 1111 1011 0100
See Also