Aracılığıyla paylaş


Bit işleme işlevleri

Şunlar için geçerlidir: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

Taşınma, elde etme (almak), ayarlamak veya tek bitleri tam veya ikili değer içinde saymak gibi bit işleme fonksiyonları, verileri bireysel bitlere göre daha verimli işlemenizi ve depolamanızı sağlar.

Bir bitin iki değeri vardır (1 veya 0, bunlar ya ya offda truefalseveya ).on Bir bayt , 8 bitlik bir diziden oluşur. SQL Server'daki bit işleme fonksiyonları, bayttaki "en sol" biti en büyük (en önemli) olarak kabul eder. Bit manipülasyon fonksiyonlarına göre bitler sağdan sola numaralandırılır; bit 0 en sağda, en küçük ve en solda ve en büyük bittir 7 .

Örneğin, bir ikili dizisi 00000111 sayısının 7ondalık eşdeğeridir. Bunu 2'nin kuvvetlerini kullanarak aşağıdaki şekilde hesaplayabilirsiniz:

00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)

Bunun pratikte anlaması, SQL Server bu değeri 11100000 (bayt-tersine çevrilmiş) olarak kaydederken, bit manipülasyon fonksiyonlarının bunu 00000111sanki '.

Birden fazla bayta bakıldığında, ilk bayt (soldan sağa okunur) en büyük bayttır.

SQL Server'ın bit işleme fonksiyonlarının bit ve bayt ifade değerlerini ile bit ofsetlerini nasıl yorumladığını görselleştirmek için aşağıdaki görselleri kullanabilirsiniz.

int

Bir int değerini gösteren diyagram, burada 4 bayt, her baytın soldan sağa ters ikili değerini temsil eder.

smallint

Birinci baytın 15'ten 8'e kadar olan bitleri temsil ettiği küçük bir zek değerini gösteren diyagram, ikinci bayt ise 7'den 0'a kadar olan bitleri temsil eder.

Functions

SQL Server'da bitleri manipüle etmek için beş fonksiyon mevcuttur:

Beş fonksiyonun tamamı tinyint, smallint, int, bigint, binary(n) ve varbinary(n) veri tipleri üzerinde çalışmak üzere tasarlanmıştır.

Aşağıdaki tipler desteklenmiyor: varchar, nvarchar, image, ntext, text, xml ve table.

Açıklamalar

İlk uygulamada, bağlı sunucu veya ad hoc sorgular (OPENQUERY) içindeki bit işleme fonksiyonları için Dağıtılmış Sorgu işlevselliği desteklenmeyecektir.