Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Bir tamsayı değeri üzerinde bit düzeyinde mantıksal NOT işlem gerçekleştirir.
Transact-SQL söz dizimi kuralları
Syntax
~ expression
Arguments
expression
Tamsayı veri türü kategorisi, bit veya ikili ya da varbinary veri türlerinin veri türlerinden herhangi birinin geçerli ifadeleri. ifadesi , bit düzeyinde işlem için ikili sayı olarak değerlendirilir.
Note
Bit düzeyinde bir işlemde yalnızca bir ifadeikili veya varbinary veri türünde olabilir.
Dönüş türleri
giriş değerleri int ise int.
giriş değerleri smallint ise smallint.
giriş değerleri tinyint ise tinyint.
giriş değerleri bit ise bit.
Remarks
~ Bit düzeyinde işleç, her biti sırayla alarak ifade için bit düzeyinde bir mantıksal NOT işlem gerçekleştirir.
İfadenin0değeri varsa, sonuç kümesindeki bitler olarak 1ayarlanır. Aksi takdirde, sonuçtaki bit değerine 0temizlenir. Başka bir deyişle, birler sıfırlara, sıfırlar ise bire değiştirilir.
Important
Herhangi bir bit düzeyinde işlem gerçekleştirdiğinizde, bit düzeyinde işlemde kullanılan ifadenin depolama uzunluğu önemlidir. Değerleri depolarken aynı sayıda bayt kullanmanızı öneririz. Örneğin, 5'in ondalık değerinin tinyint, smallint veya int olarak depolanması, farklı bayt sayılarıyla depolanan bir değer üretir: tinyint verileri 1 bayt kullanarak depolar; smallint verileri 2 bayt kullanarak depolar ve int verileri 4 bayt kullanarak depolar. Bu nedenle, int ondalık değeri üzerinde bit düzeyinde bir işlem gerçekleştirmek, özellikle ~ (bit düzeyinde NOT) işleci kullanıldığında doğrudan ikili veya onaltılık çeviri kullananlardan farklı sonuçlar üretebilir. Bit düzeyinde NOT işlem daha kısa uzunlukta bir değişkende gerçekleşebilir. Bu durumda, daha kısa uzunluk daha uzun bir veri türü değişkenine dönüştürüldüğünde, üst 8 bitteki bitler beklenen değere ayarlanamayabilir. Daha küçük veri türü değişkenini daha büyük veri türüne dönüştürmenizi ve ardından sonuç üzerinde işlemi gerçekleştirmenizi NOT öneririz.
Examples
Aşağıdaki örnek, değerleri depolamak için int veri türünü kullanarak bir tablo oluşturur ve iki değeri tek bir satıra ekler.
CREATE TABLE bitwise
(
a_int_value INT NOT NULL,
b_int_value INT NOT NULL
);
GO
INSERT bitwise
VALUES (170, 75);
GO
Aşağıdaki sorgu ve b_int_value sütunlarında bit düzeyinde NOTa_int_value gerçekleştirir.
SELECT ~a_int_value AS NotA,
~b_int_value AS NotB
FROM bitwise;
Sonuç kümesi aşağıdadır.
NotA NotB
----- -----
-171 -76
170 'in ikili gösterimi (a_int_value veya A) şeklindedir 0000 0000 0000 0000 0000 0000 1010 1010. Bu değer üzerinde bit düzeyinde NOT işlem gerçekleştirildiğinde ondalık -171 olan ikili sonuç 1111 1111 1111 1111 1111 1111 0101 0101elde edilir. 75'in ikili gösterimi şeklindedir 0000 0000 0000 0000 0000 0000 0100 1011. Bit düzeyinde NOT işlemin gerçekleştirilmesi ondalık -76 olan değerini üretir 1111 1111 1111 1111 1111 1111 1011 0100.
(~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