^ (Eksklusif Bitwise OR) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Melakukan operasi eksklusif OR logis bitwise antara dua nilai bilangan bulat.

Konvensi sintaks transact-SQL

Syntax

expression ^ expression

Arguments

expression

Ekspresi valid apa pun dari salah satu jenis data dari kategori jenis data bilangan bulat, atau bit, atau jenis data biner atau varbinary. ekspresi diperlakukan sebagai angka biner untuk operasi bitwise.

Note

Hanya satu ekspresi yang dapat berupa jenis data biner atau varbinary dalam operasi bitwise.

Tipe pengembalian

int jika nilai input adalah int.

smallint jika nilai input kecil.

tinyint jika nilai inputnya kecil.

Remarks

Operator ^ bitwise melakukan eksklusif OR logis bitwise antara kedua ekspresi, mengambil setiap bit yang sesuai untuk kedua ekspresi. Bit dalam hasil diatur ke 1 jika bit (tetapi tidak keduanya) (untuk bit saat ini yang diselesaikan) dalam ekspresi input memiliki nilai 1. Jika kedua bit adalah 0 atau kedua bit adalah 1, bit dalam hasil dibersihkan ke nilai 0.

Jika ekspresi kiri dan kanan memiliki jenis data bilangan bulat yang berbeda (misalnya, ekspresi kiri berwarna kecil dan ekspresi kanan adalah int), argumen jenis data yang lebih kecil dikonversi ke jenis data yang lebih besar. Dalam hal ini, ekspresi smallintdikonversi ke int.

Examples

Contoh berikut membuat tabel menggunakan tipe data int untuk menyimpan nilai asli dan menyisipkan dua nilai ke dalam satu baris.

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

INSERT bitwise
VALUES (170, 75);
GO

Kueri berikut melakukan bitwise eksklusif OR pada a_int_value kolom dan b_int_value .

SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

Berikut kumpulan hasilnya.

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

Representasi biner 170 (a_int_value atau A) adalah 0000 0000 1010 1010. Representasi biner 75 (b_int_value atau B) adalah 0000 0000 0100 1011. Melakukan operasi eksklusif OR bitwise pada kedua nilai ini menghasilkan hasil 0000 0000 1110 0001biner , yaitu desimal 225.

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