^ (Bitowe lub wykluczające) (Transact-SQL)
Wykonuje operację logiczną lub wyłączności między dwie wartości całkowitych.
Składnia
expression ^ expression
Argumenty
expression
Wszelkie obowiązuje wyrażenie jednego z typów danych kategorię typu danych integer lub bit, lub binary lub varbinary typów danych.expressionjest traktowana jako liczbę dwójkową dla operacja bitowa.Ostrzeżenie
Tylko jeden expression może być albo binary lub varbinary Typ danych w operacja bitowa.
Typy wyników
intJeśli wartości wejściowe są int.
smallintJeśli wartości wejściowe są smallint.
tinyintJeśli wartości wejściowe są tinyint.
Uwagi
^ Bitowe operator wykonuje logiczną lub wykluczające logiczna między dwoma wyrażeniami, uwzględniając każdy odpowiedni bit dla obu wyrażeń.Bity w wyniku są zestaw na 1, jeśli albo (ale nie jednocześnie) usługi bits (dla bieżącego bit zamieniana) w danych wejściowych wyrażenia mają wartość 1.Jeśli oba bity są równe 0 lub oba bity są równe 1, bit w wyniku jest ustawiony na wartość 0.
Jeśli wyrażenia lewego i prawego mają całkowitą różnych typów danych (na przykład, po lewej stronie expression jest smallint i prawo do expression jest int), argument mniejszy typ danych jest konwertowana na większy typu danych.W tym przypadek smallintexpression jest konwertowany na int.
Przykłady
Poniższy przykład tworzy tabela przy użyciu int Typ do przechowywania wartości oryginalnych danych i wstawia 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 logiczną lub wykluczające na a_int_value i b_int_value kolumny.
USE tempdb;
GO
SELECT a_int_value ^ b_int_value
FROM bitwise;
GO
Oto zestaw wyników:
-----------
225
(1 row(s) affected)
Reprezentacja binarna 170 (a_int_value lub A) jest 0000 0000 1010 1010.Reprezentacja binarna 75 (b_int_value lub B) jest 0000 0000 0100 1011.Bitowe operacji lub wyłącznych na tych dwóch wartości daje wynik binarne 0000 0000 1110 0001, który jest decimal 225.
(A ^ B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 0001