ClickHouse/docs/ja/sql-reference/functions/bit-functions.md

5.5 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 48 ビット

ビット関数

ビット関数は、UInt8、UInt16、UInt32、UInt64、Int8、Int16、Int32、Int64、Float32、Float64のいずれかの型のペアに対しても機能します。

結果の型は、引数の最大ビットに等しいビットを持つ整数です。 引数のうち少なくともいずれかが署名されている場合、結果は符号付き番号になります。 引数が浮動小数点数の場合は、Int64にキャストされます。

ビタン(a,b)

ビター(a,b)

bitXor(a,b)

bitNot(a)

ビットシフトレフト(a,b)

ビットシフトライト(a,b)

ビットロタテレフト(a,b)

ビットロータライト(a,b)

bitTest

間の任意の整数に換算しています。 バイナリ形式,指定された位置にあるビットの値を返します。 カウントダウンは右から左に0から始まります。

構文

SELECT bitTest(number, index)

パラメータ

  • number integer number.
  • index position of bit.

戻り値

指定された位置にあるbitの値を返します。

タイプ: UInt8.

たとえば、基数43-2(二進数)の数値システムでは101011です。

クエリ:

SELECT bitTest(43, 1)

結果:

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

別の例:

クエリ:

SELECT bitTest(43, 2)

結果:

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

ビッテスタール

の結果を返します 論理結合 指定された位置にあるすべてのビットの(and演算子)。 カウントダウンは右から左に0から始まります。

ビットごとの演算のための結合:

0 AND 0 = 0

0 AND 1 = 0

1 AND 0 = 0

1 AND 1 = 1

構文

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

パラメータ

  • number integer number.
  • index1, index2, index3, index4 positions of bit. For example, for set of positions (index1, index2, index3, index4)は、すべての位置が真である場合にのみtrueです (index1index2, ⋀ index3index4).

戻り値

論理結合の結果を返します。

タイプ: UInt8.

たとえば、基数43-2(二進数)の数値システムでは101011です。

クエリ:

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

結果:

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

別の例:

クエリ:

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

結果:

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

ビッテスタニ

の結果を返します 論理和 指定された位置にあるすべてのビットの(または演算子)。 カウントダウンは右から左に0から始まります。

ビットごとの演算の分離:

0 OR 0 = 0

0 OR 1 = 1

1 OR 0 = 1

1 OR 1 = 1

構文

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

パラメータ

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

戻り値

論理解釈の結果を返します。

タイプ: UInt8.

たとえば、基数43-2(二進数)の数値システムでは101011です。

クエリ:

SELECT bitTestAny(43, 0, 2)

結果:

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

別の例:

クエリ:

SELECT bitTestAny(43, 4, 2)

結果:

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

ビット数

数値のバイナリ表現で一つに設定されたビット数を計算します。

構文

bitCount(x)

パラメータ

  • x整数 または 浮動小数点数 番号 この関数は、メモリ内の値表現を使用します。 浮動小数点数をサポートできます。

戻り値

  • 入力番号の一つに設定されたビット数。

この関数は、入力値をより大きな型に変換しません (符号拡張). 例えば, bitCount(toUInt8(-1)) = 8.

タイプ: UInt8.

たとえば、数333を取る。 そのバイナリ表現00000000101001101。

クエリ:

SELECT bitCount(333)

結果:

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

元の記事