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ı
Tamsayı değeri üzerinde bit düzeyinde mantıksal DEĞİl işlemi 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 bir ifadesidir.
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.
Sonuç 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ç, ifade için bit düzeyinde mantıksal NOT gerçekleştirir ve her biti sırayla alır. İfadenin değeri 0 ise, sonuç kümesindeki bitler 1 olarak ayarlanır; aksi takdirde, sonuçtaki bit 0 değerine temizlenir. 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 işlem gerçekleştirmek, özellikle ~ (bit düzeyinde DEĞİl) işleci kullanıldığında doğrudan ikili veya onaltılık çeviri kullananlardan farklı sonuçlar üretebilir. Bit düzeyinde DEĞİl işlemi 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 DEĞİl işlemini gerçekleştirmenizi ö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 a_int_value sütunlarında bit düzeyinde DEĞİl b_int_value işlemini gerçekleştirir.
SELECT ~ a_int_value, ~ b_int_value
FROM bitwise;
Sonuç kümesi aşağıdadır:
--- ---
-171 -76
(1 row(s) affected)
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 DEĞİl işleminin gerçekleştirilmesi, ondalık -171 olan ikili sonucu 1111 1111 1111 1111 1111 1111 0101 0101üretir. 75'in ikili gösterimi şeklindedir 0000 0000 0000 0000 0000 0000 0100 1011. Bit düzeyinde DEĞİl işleminin 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
Ayrıca Bkz.
İfadeler (Transact-SQL)
İşleçler (Transact-SQL)
Bit Düzeyinde İşleçler (Transact-SQL)