^ (bitwise exclusive OR) (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Provede bitové logické výhradní OR operace mezi dvěma celočíselnou hodnotou.

Transact-SQL konvence syntaxe

Syntax

expression ^ expression

Arguments

expression

Libovolný platný výraz libovolného z datových typů celočíselné kategorie datového typu, bitu nebo binárního nebo varbinárního datového typu. výraz je považován za binární číslo pro bitovou operaci.

Note

V bitové operaci může být pouze jeden výrazz binárního nebo varbinárního datového typu.

Návratové typy

pokud jsou vstupní hodnoty int.

smallint, pokud jsou vstupní hodnoty malé.

tinyint pokud jsou vstupní hodnoty tinyint.

Remarks

^ Bitový operátor provádí bitovou logickou exkluziv OR mezi těmito dvěma výrazy, přičemž každý odpovídající bit pro oba výrazy. Bity ve výsledku jsou nastaveny tak 1 , aby buď (ale ne oba) bity (pro aktuální bit, který se překládá) ve vstupních výrazech měly hodnotu 1. Pokud jsou 0 oba bity nebo oba bity 1, bit ve výsledku se vymaže na hodnotu 0.

Pokud výrazy vlevo a vpravo mají různé celočíselné datové typy (například levý výraz je malý a pravý výraz je int), je argument menšího datového typu převeden na větší datový typ. V tomto případě se malýintvýraz převede na int.

Examples

Následující příklad vytvoří tabulku pomocí datového typu int k uložení původních hodnot a vloží dvě hodnoty do jednoho řádku.

CREATE TABLE bitwise
(
    a_int_value INT NOT NULL,
    b_int_value INT NOT NULL
);
GO

INSERT bitwise
VALUES (170, 75);
GO

Následující dotaz provede bitově výhradní OR hodnoty pro a_int_value sloupce a b_int_value sloupce.

SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

Tady je soubor výsledků.

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

Binární reprezentace 170 (a_int_value nebo A) je 0000 0000 1010 1010. Binární reprezentace 75 (b_int_value nebo B) je 0000 0000 0100 1011. Provedení bitové exkluzivní OR operace na těchto dvou hodnotách vytvoří binární výsledek 0000 0000 1110 0001, což je desítkové číslo 225.

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