Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Provede bitové logické NOT operace s celočíselnou hodnotou.
Syntax
~ 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.
bit , pokud jsou vstupní hodnoty bit.
Remarks
~ Bitový operátor provádí bitovou logickou NOT funkci výrazu, přičemž každý bit zase přebírá. Pokud má výraz hodnotu 0, bity v sadě výsledků jsou nastaveny na 1. V opačném případě se bit ve výsledku vymaže na hodnotu 0. Jinými slovy se změní na nuly a nuly se změní na nuly.
Important
Při provádění libovolného druhu bitové operace je důležitá délka úložiště výrazu použitého v bitové operaci. Při ukládání hodnot doporučujeme použít stejný počet bajtů. Například uložení desetinné hodnoty 5 jako tinyint, smallint nebo int vytvoří hodnotu uloženou s různými čísly bajtů: tinyint ukládá data pomocí 1 bajtu; smallint ukládá data pomocí 2 bajtů a int ukládá data pomocí 4 bajtů. Proto provádění bitové operace s int desetinnou hodnotou může vést k odlišným výsledkům od těch, které používají přímý binární nebo šestnáctkový překlad, zejména při použití operátoru ~ (bitwise NOT). Bitová NOT operace může nastat v proměnné kratší délky. V takovém případě se při převodu kratší délky na delší proměnnou datového typu nemusí bity v horních 8 bitech nastavit na očekávanou hodnotu. Doporučujeme převést menší proměnnou datového typu na větší datový typ a pak provést NOT operaci s výsledkem.
Examples
Následující příklad vytvoří tabulku pomocí datového typu int k uložení hodnot a vloží tyto 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 bitovou bitové operace NOT se a_int_value sloupci a b_int_value sloupci.
SELECT ~a_int_value AS NotA,
~b_int_value AS NotB
FROM bitwise;
Tady je soubor výsledků.
NotA NotB
----- -----
-171 -76
Binární reprezentace 170 (a_int_value nebo A) je 0000 0000 0000 0000 0000 0000 1010 1010. Provedení bitové NOT operace na této hodnotě vytvoří binární výsledek 1111 1111 1111 1111 1111 1111 0101 0101, což je desítkové -171. Binární reprezentace pro 75 je 0000 0000 0000 0000 0000 0000 0100 1011. Provádění bitové NOT operace vytvoří 1111 1111 1111 1111 1111 1111 1011 0100, což je desítkové -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