~ (Bitwise NOT) (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Platform System (PDW)
SQL di Microsoft Fabric
Warehouse di Microsoft Fabric
Melakukan operasi NOT logis bitwise pada nilai bilangan bulat.
Sintaksis
~ expression
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
expression
Adalah ekspresi yang valid dari salah satu jenis data dari kategori jenis data bilangan bulat, bit, atau jenis data biner atau varbinary. ekspresi diperlakukan sebagai angka biner untuk operasi bitwise.
Catatan
Hanya satu ekspresi yang dapat berupa jenis data biner atau varbinary dalam operasi bitwise.
Jenis Hasil
int jika nilai input adalah int.
smallint jika nilai input kecil.
tinyint jika nilai inputnya kecil.
bit jika nilai input bit.
Keterangan
Operator ~ bitwise melakukan bitwise logis NOT untuk ekspresi, mengambil setiap bit secara bergantian. Jika ekspresi memiliki nilai 0, bit dalam tataan hasil diatur ke 1; jika tidak, bit dalam hasil dibersihkan ke nilai 0. Dengan kata lain, yang diubah menjadi nol dan nol diubah menjadi nol.
Penting
Ketika Anda melakukan segala jenis operasi bitwise, panjang penyimpanan ekspresi yang digunakan dalam operasi bitwise penting. Kami menyarankan agar Anda menggunakan jumlah byte yang sama ini saat menyimpan nilai. Misalnya, menyimpan nilai desimal 5 sebagai tinyint, smallint, atau int menghasilkan nilai yang disimpan dengan jumlah byte yang berbeda: tinyint menyimpan data menggunakan 1 byte; smallint menyimpan data menggunakan 2 byte, dan int menyimpan data menggunakan 4 byte. Oleh karena itu, melakukan operasi bitwise pada nilai desimal int dapat menghasilkan hasil yang berbeda dari yang menggunakan terjemahan biner atau heksadesimal langsung, terutama ketika ~ operator (BITWISE NOT) digunakan. Operasi BITWISE NOT dapat terjadi pada variabel dengan panjang yang lebih pendek. Dalam hal ini, ketika panjang yang lebih pendek dikonversi ke variabel jenis data yang lebih panjang, bit dalam 8 bit atas mungkin tidak diatur ke nilai yang diharapkan. Kami menyarankan agar Anda mengonversi variabel jenis data yang lebih kecil ke jenis data yang lebih besar, lalu melakukan operasi NOT pada hasilnya.
Contoh
Contoh berikut membuat tabel menggunakan tipe data int untuk menyimpan nilai 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 NOT pada a_int_value
kolom dan b_int_value
.
SELECT ~ a_int_value, ~ b_int_value
FROM bitwise;
Berikut adalah hasilnya:
--- ---
-171 -76
(1 row(s) affected)
Representasi biner 170 (a_int_value
atau A
) adalah 0000 0000 0000 0000 0000 0000 1010 1010
. Melakukan operasi BITWISE NOT pada nilai ini menghasilkan hasil 1111 1111 1111 1111 1111 1111 0101 0101
biner , yaitu desimal -171. Representasi biner untuk 75 adalah 0000 0000 0000 0000 0000 0000 0100 1011
. Melakukan operasi BITWISE NOT menghasilkan 1111 1111 1111 1111 1111 1111 1011 0100
, yaitu desimal -76.
(~A)
0000 0000 0000 0000 0000 0000 1010 1010
---------------------------------------
1111 1111 1111 1111 1111 1111 0101 0101
(~B)
0000 0000 0000 0000 0000 0000 0100 1011
---------------------------------------
1111 1111 1111 1111 1111 1111 1011 0100
Lihat Juga
Ekspresi (Transact-SQL)
Operator (Transact-SQL)
Operator Bitwise (Transact-SQL)