Bagikan melalui


^ (Or eksklusif Bitwise) (Azure Stream Analytics)

Melakukan operasi eksklusif OR (XOR) logis bitwise antara dua nilai bilangan bulat, mengevaluasi setiap bit yang sesuai dari kedua ekspresi.

Sintaks

expression ^ expression

Argumen

ekspresi

Adalah ekspresi yang valid dari jenis data bit atau bigint. Ekspresi diperlakukan sebagai angka biner untuk operasi bitwise.

Jenis yang ditampilkan

bit jika kedua nilai input bit.

bigint jika satu atau kedua nilai input adalah bigint.

Keterangan

Operator bitwise melakukan or eksklusif logis bitwise di antara kedua ekspresi, mengambil setiap bit yang sesuai untuk kedua ekspresi. Bit dalam hasil diatur ke 1 jika salah satu (tetapi tidak keduanya) bit (untuk bit saat ini yang diselesaikan) dalam ekspresi input memiliki nilai 1; jika tidak, bit dalam hasil diatur ke 0.

Untuk ilustrasi, representasi biner 170 adalah 0000 0000 1010 1010. Representasi biner 75 adalah 0000 0000 0100 1011. Melakukan operasi XOR bitwise pada kedua nilai ini menghasilkan hasil biner 0000 0000 1110 0001, yaitu desimal 225.

(170 ^ 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 0001

Perlu dicatat bahwa mentransmisikan nilai FLOAT ke BIGINT, dan menerapkan operator bitwise di atasnya paling sering tidak akan mengembalikan hasil yang sama seperti mentransmisikannya ke BIT dan menerapkan operator yang sama:

  • Opsi pertama : 170 ^ 75,0 => 170 ^ 75 = 225
  • Opsi kedua : 170 ^ 75,0 => 170 ^ 1 = 171

Lihat Gambaran Umum Jenis Data untuk aturan konversi ke bit.

Contoh

Dengan himpunan data input umum:

WITH MyCTE AS (
	SELECT
		CAST(0 AS BIT) AS bit0,
		CAST(1 AS BIT) AS bit1,
		CAST(NULL AS BIT) AS bitN,
		CAST(0 AS BIGINT) AS bigint0,
		CAST(1 AS BIGINT) AS bigint1,
		CAST(NULL AS BIGINT) AS bigintN
	FROM input
)

Menerapkan operator pada ekspresi bit :

SELECT
	bit0,
	bit1,
	bitN,
	bit0 ^ bit0 AS XOR00,
	bit0 ^ bit1 AS XOR01,
	bit1 ^ bit0 AS XOR10,
	bit1 ^ bit1 AS XOR11,
	bitN ^ bit1 AS XORnull
INTO bitXOR
FROM MyCTE

Menampilkan:

bit0 bit1 bitN XOR00 XOR01 XOR10 XOR11 XORnull
salah TRUE NULL salah TRUE TRUE salah NULL

Menerapkan operator pada ekspresi bigint :

SELECT
	bigint0,
	bigint1,
	bigintN,
	bigint0 ^ bigint0 AS XOR00,
	bigint0 ^ bigint1 AS XOR01,
	bigint1 ^ bigint0 AS XOR10,
	bigint1 ^ bigint1 AS XOR11,
	bigintN ^ bigint1 AS XORnull,
	170 ^ 75 AS XORvalues
INTO bigintXOR
FROM MyCTE

Menampilkan:

bigint0 bigint1 bigintN XOR00 XOR01 XOR10 XOR11 XORnull XORvalues
0 1 NULL 0 1 1 0 NULL 225

Memvalidasi jenis output:

SELECT
	GetType(bit0 ^ bit0) AS XORtype_bit,
	GetType(bigint0 ^ bigint0) AS XORtype_bigint,
	GetType(bit0 ^ bigint0) AS XORtype_mixed
INTO typesXOR
FROM MyCTE

Menampilkan:

XORtype_bit XORtype_bigint ORtype_mixed
bit bigint bigint

Lihat juga