ClickHouse/docs/tr/sql_reference/functions/bit_functions.md
2020-04-15 16:56:49 +03:00

5.2 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true e8cd92bba3 48 Bitlik

Bit fonksiyonları

Bit işlevleri, uint8, Uİnt16, Uİnt32, Uint64, Int8, Int16, Int32, Int64, Float32 veya Float64 türlerinden herhangi bir çift için çalışır.

Sonuç türü, bağımsız değişkenlerinin maksimum bitlerine eşit bit içeren bir tamsayıdır. Bağımsız değişkenlerden en az biri imzalanırsa, sonuç imzalı bir sayıdır. Bir bağımsız değişken bir kayan noktalı sayı ise, Int64 için cast.

bıtor(a, b)

bitOr(a, b)

bitXor(a, b)

bitNot (a)

bitShiftLeft(a, b)

bitShiftRight(a, b)

bitRotateLeft(a, b)

bitRotateRight(a, b)

bitTest

Herhangi bir tamsayı alır ve dönüştürür ikili form, belirtilen konumda bir bit değerini döndürür. Geri sayım sağdan sola 0 başlar.

Sözdizimi

SELECT bitTest(number, index)

Parametre

  • number integer number.
  • index position of bit.

Döndürülen değerler

Belirtilen konumda bit değeri döndürür.

Tür: UInt8.

Örnek

Örneğin, taban-2 (ikili) sayı sistemindeki 43 sayısı 101011'dir.

Sorgu:

SELECT bitTest(43, 1)

Sonuç:

┌─bitTest(43, 1)─┐
│              1 │
└────────────────┘

Başka bir örnek:

Sorgu:

SELECT bitTest(43, 2)

Sonuç:

┌─bitTest(43, 2)─┐
│              0 │
└────────────────┘

bitTestAll

Sonucu döndürür mantıksal conjuction Verilen pozisyonlarda tüm bitlerin (ve operatörü). Geri sayım sağdan sola 0 başlar.

Bitsel işlemler için conjuction:

0 AND 0 = 0

0 AND 1 = 0

1 AND 0 = 0

1 AND 1 = 1

Sözdizimi

SELECT bitTestAll(number, index1, index2, index3, index4, ...)

Parametre

  • number integer number.
  • index1, index2, index3, index4 positions of bit. For example, for set of positions (index1, index2, index3, index4) doğru ise ve sadece tüm pozisyon trueları doğru ise (index1index2, ⋀ index3index4).

Döndürülen değerler

Mantıksal conjuction sonucunu döndürür.

Tür: UInt8.

Örnek

Örneğin, taban-2 (ikili) sayı sistemindeki 43 sayısı 101011'dir.

Sorgu:

SELECT bitTestAll(43, 0, 1, 3, 5)

Sonuç:

┌─bitTestAll(43, 0, 1, 3, 5)─┐
│                          1 │
└────────────────────────────┘

Başka bir örnek:

Sorgu:

SELECT bitTestAll(43, 0, 1, 3, 5, 2)

Sonuç:

┌─bitTestAll(43, 0, 1, 3, 5, 2)─┐
│                             0 │
└───────────────────────────────┘

bitTestAny

Sonucu döndürür mantıksal ayrılma Verilen konumlardaki tüm bitlerin (veya operatör). Geri sayım sağdan sola 0 başlar.

Bitsel işlemler için ayrılma:

0 OR 0 = 0

0 OR 1 = 1

1 OR 0 = 1

1 OR 1 = 1

Sözdizimi

SELECT bitTestAny(number, index1, index2, index3, index4, ...)

Parametre

  • number integer number.
  • index1, index2, index3, index4 positions of bit.

Döndürülen değerler

Mantıksal disjuction sonucunu döndürür.

Tür: UInt8.

Örnek

Örneğin, taban-2 (ikili) sayı sistemindeki 43 sayısı 101011'dir.

Sorgu:

SELECT bitTestAny(43, 0, 2)

Sonuç:

┌─bitTestAny(43, 0, 2)─┐
│                    1 │
└──────────────────────┘

Başka bir örnek:

Sorgu:

SELECT bitTestAny(43, 4, 2)

Sonuç:

┌─bitTestAny(43, 4, 2)─┐
│                    0 │
└──────────────────────┘

bitCount

Bir sayının ikili gösteriminde birine ayarlanmış bit sayısını hesaplar.

Sözdizimi

bitCount(x)

Parametre

  • xTamsayı veya kayan nokta numara. İşlev, bellekteki değer gösterimini kullanır. Kayan noktalı sayıları desteklemeye izin verir.

Döndürülen değer

  • Giriş numarasında birine ayarlanmış bit sayısı.

İşlev, giriş değerini daha büyük bir türe dönüştürmez (işaret uzantısı). Bu yüzden, örneğin , bitCount(toUInt8(-1)) = 8.

Tür: UInt8.

Örnek

Örneğin 333 sayısını alın. İkili gösterimi: 0000000101001101.

Sorgu:

SELECT bitCount(333)

Sonuç:

┌─bitCount(333)─┐
│             5 │
└───────────────┘

Orijinal makale