^ (Bitowe wyłączne OR) (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Wykonuje bitową operację wykluczania OR logicznego między dwiema wartościami całkowitymi.

Transact-SQL konwencje składni

Syntax

expression ^ expression

Arguments

expression

Dowolne prawidłowe wyrażenie dowolnego z typów danych kategorii typu danych całkowitych lub bitu albo typów danych 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 zwracane

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.

Remarks

Operator ^ bitowy wykonuje bitowe logiczne wyłączność OR między dwoma wyrażeniami, biorąc każdy odpowiadający bit dla obu wyrażeń. Bity w wyniku są ustawione na 1 bity, jeśli bity (ale nie oba) (dla bieżącego bitu rozpoznawanego) w wyrażeniach wejściowych mają wartość 1. Jeśli oba bity są 0 lub oba bity to 1, bit w wyniku zostanie wyczyszczone na wartość 0.

Jeśli wyrażenia po lewej i prawej mają różne typy danych całkowitych (na przykład wyrażenie po lewej stronie jest małe , a prawe wyrażenie jest int), argument mniejszego typu danych jest konwertowany na większy typ danych. W tym przypadku wyrażeniesmallint jest konwertowane na int.

Examples

Poniższy przykład tworzy tabelę przy użyciu typu danych int do przechowywania oryginalnych 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

Poniższe zapytanie wykonuje bitowe wyłączność OR na kolumnach a_int_value i .b_int_value

SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

Oto zestaw wyników.

-----------
225

Binarna reprezentacja wartości 170 (a_int_value lub A) to 0000 0000 1010 1010. Binarna reprezentacja wartości 75 (b_int_value lub B) to 0000 0000 0100 1011. Wykonanie operacji wykluczania OR bitowego na tych dwóch wartościach powoduje wynik 0000 0000 1110 0001binarny , który jest dziesiętny 225.

(A ^ B)
         0000 0000 1010 1010
         0000 0000 0100 1011
         -------------------
         0000 0000 1110 0001