ClickHouse/docs/ja/sql_reference/functions/bit_functions.md
2020-04-04 12:15:31 +03:00

5.5 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 48 ビット

ビット機能

ビット関数は、uint8、uint16、uint32、uint64、int8、int16、int32、int64、float32、またはfloat64のいずれかの種類のペアで機能します。

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

bitAnd(a,b)

bitOr(a,b)

bitXor(a,b)

bitNot(a)

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

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

bitRotateLeft(a,b)

bitRotateRight(a,b)

適者生存

任意の整数を受け取り、それを バイナリ形式、指定された位置にあるビットの値を返します。 カウントダウンは右から左に0から始まります。

構文

SELECT bitTest(number, index)

パラメータ

  • number integer number.
  • index position of bit.

戻り値

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

タイプ: UInt8.

例えば

たとえば、ベース43バイナリ数値システムの数値は101011です。

クエリ:

SELECT bitTest(43, 1)

結果:

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

別の例:

クエリ:

SELECT bitTest(43, 2)

結果:

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

bitTestAll

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

ビット演算のためのconjuction:

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の場合にのみtrue (index1index2, ⋀ index3index4).

戻り値

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

タイプ: UInt8.

例えば

たとえば、ベース43バイナリ数値システムの数値は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 │
└───────────────────────────────┘

bitTestAny

の結果を返します 論理和 与えられた位置にあるすべてのビットの(または演算子)。 カウントダウンは右から左に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.

戻り値

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

タイプ: UInt8.

例えば

たとえば、ベース43バイナリ数値システムの数値は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 │
└───────────────┘

元の記事