Поделиться через


^ (побитовое исключающее ИЛИ) (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Выполняет побитовую операцию исключающего ИЛИ между двумя целочисленными значениями.

Соглашения о синтаксисе Transact-SQL

Syntax

expression ^ expression  

Arguments

expression
Любое допустимое выражение любого типа данных из категории целочисленных типов или bit либо типов данных binary или varbinary. expression трактуется как двоичное числовое значение для выполнения побитовой операции.

Note

В побитовой операции только одно выражение expression может иметь тип binary или varbinary.

Типы результатов

int, если входные значения имеют тип int.

smallint, если входные значения имеют тип smallint.

tinyint, если входные значения имеют тип tinyint.

Remarks

Побитовый оператор ^ выполняет операцию побитового логического исключающего ИЛИ между двумя выражениями, последовательно обрабатывая соответствующие биты для двух выражений. Значение результирующих битов устанавливается равным 1, если для текущего разрешаемого бита один из битов (но не оба) во входных выражениях имеет значение 1. Если оба бита имеют равные значения, результирующий бит принимает значение 0.

Если левое и правое выражения принадлежат к различным целочисленным типам данных (например, левое выражение expression — к типу smallint, а правое выражение expression — к типу int), аргумент более короткого типа данных преобразовывается в более длинный тип данных. В этом случае smallintexpression преобразуется в тип int.

Examples

В приведенном ниже примере создается таблица, использующая тип данных int для хранения оригинальных значений и вставки двух значений в одну строку.

CREATE TABLE bitwise (   
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);
GO  
INSERT bitwise VALUES (170, 75);  
GO  

В следующем запросе выполняется операция побитового исключающего ИЛИ над столбцами a_int_value и b_int_value.

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

Результирующий набор:

-----------   
225           
  
(1 row(s) affected)  

Двоичное представление числа 170 (a_int_value или A) — 0000 0000 1010 1010. Двоичное представление числа 75 (b_int_value или B) — 0000 0000 0100 1011. При выполнении операции побитового исключающего ИЛИ над этими двумя значениями получается двоичный результат 0000 0000 1110 0001, который является десятичным числом 225.

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

См. также

Выражения (Transact-SQL)
Операторы (Transact-SQL)
Побитовые операторы (Transact-SQL)
^= (побитовое эксклюзивное ИЛИ назначение) (Transact-SQL)
Составные операторы (Transact-SQL)