mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-08 00:24:41 +00:00
cd14f9ebcb
* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
256 lines
5.5 KiB
Markdown
256 lines
5.5 KiB
Markdown
---
|
||
machine_translated: true
|
||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
||
toc_priority: 48
|
||
toc_title: "\u30D3\u30C3\u30C8"
|
||
---
|
||
|
||
# ビット関数 {#bit-functions}
|
||
|
||
ビット関数は、UInt8、UInt16、UInt32、UInt64、Int8、Int16、Int32、Int64、Float32、Float64のいずれかの型のペアに対しても機能します。
|
||
|
||
結果の型は、引数の最大ビットに等しいビットを持つ整数です。 引数のうち少なくともいずれかが署名されている場合、結果は符号付き番号になります。 引数が浮動小数点数の場合は、Int64にキャストされます。
|
||
|
||
## ビタン(a,b) {#bitanda-b}
|
||
|
||
## ビター(a,b) {#bitora-b}
|
||
|
||
## bitXor(a,b) {#bitxora-b}
|
||
|
||
## bitNot(a) {#bitnota}
|
||
|
||
## ビットシフトレフト(a,b) {#bitshiftlefta-b}
|
||
|
||
## ビットシフトライト(a,b) {#bitshiftrighta-b}
|
||
|
||
## ビットロタテレフト(a,b) {#bitrotatelefta-b}
|
||
|
||
## ビットロータライト(a,b) {#bitrotaterighta-b}
|
||
|
||
## bitTest {#bittest}
|
||
|
||
間の任意の整数に換算しています。 [バイナリ形式](https://en.wikipedia.org/wiki/Binary_number),指定された位置にあるビットの値を返します。 カウントダウンは右から左に0から始まります。
|
||
|
||
**構文**
|
||
|
||
``` sql
|
||
SELECT bitTest(number, index)
|
||
```
|
||
|
||
**パラメータ**
|
||
|
||
- `number` – integer number.
|
||
- `index` – position of bit.
|
||
|
||
**戻り値**
|
||
|
||
指定された位置にあるbitの値を返します。
|
||
|
||
タイプ: `UInt8`.
|
||
|
||
**例**
|
||
|
||
たとえば、基数43-2(二進数)の数値システムでは101011です。
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitTest(43, 1)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitTest(43, 1)─┐
|
||
│ 1 │
|
||
└────────────────┘
|
||
```
|
||
|
||
別の例:
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitTest(43, 2)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitTest(43, 2)─┐
|
||
│ 0 │
|
||
└────────────────┘
|
||
```
|
||
|
||
## ビッテスタール {#bittestall}
|
||
|
||
の結果を返します [論理結合](https://en.wikipedia.org/wiki/Logical_conjunction) 指定された位置にあるすべてのビットの(and演算子)。 カウントダウンは右から左に0から始まります。
|
||
|
||
ビットごとの演算のための結合:
|
||
|
||
0 AND 0 = 0
|
||
|
||
0 AND 1 = 0
|
||
|
||
1 AND 0 = 0
|
||
|
||
1 AND 1 = 1
|
||
|
||
**構文**
|
||
|
||
``` sql
|
||
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です (`index1` ⋀ `index2`, ⋀ `index3` ⋀ `index4`).
|
||
|
||
**戻り値**
|
||
|
||
論理結合の結果を返します。
|
||
|
||
タイプ: `UInt8`.
|
||
|
||
**例**
|
||
|
||
たとえば、基数43-2(二進数)の数値システムでは101011です。
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitTestAll(43, 0, 1, 3, 5)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitTestAll(43, 0, 1, 3, 5)─┐
|
||
│ 1 │
|
||
└────────────────────────────┘
|
||
```
|
||
|
||
別の例:
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitTestAll(43, 0, 1, 3, 5, 2)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitTestAll(43, 0, 1, 3, 5, 2)─┐
|
||
│ 0 │
|
||
└───────────────────────────────┘
|
||
```
|
||
|
||
## ビッテスタニ {#bittestany}
|
||
|
||
の結果を返します [論理和](https://en.wikipedia.org/wiki/Logical_disjunction) 指定された位置にあるすべてのビットの(または演算子)。 カウントダウンは右から左に0から始まります。
|
||
|
||
ビットごとの演算の分離:
|
||
|
||
0 OR 0 = 0
|
||
|
||
0 OR 1 = 1
|
||
|
||
1 OR 0 = 1
|
||
|
||
1 OR 1 = 1
|
||
|
||
**構文**
|
||
|
||
``` sql
|
||
SELECT bitTestAny(number, index1, index2, index3, index4, ...)
|
||
```
|
||
|
||
**パラメータ**
|
||
|
||
- `number` – integer number.
|
||
- `index1`, `index2`, `index3`, `index4` – positions of bit.
|
||
|
||
**戻り値**
|
||
|
||
論理解釈の結果を返します。
|
||
|
||
タイプ: `UInt8`.
|
||
|
||
**例**
|
||
|
||
たとえば、基数43-2(二進数)の数値システムでは101011です。
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitTestAny(43, 0, 2)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitTestAny(43, 0, 2)─┐
|
||
│ 1 │
|
||
└──────────────────────┘
|
||
```
|
||
|
||
別の例:
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitTestAny(43, 4, 2)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitTestAny(43, 4, 2)─┐
|
||
│ 0 │
|
||
└──────────────────────┘
|
||
```
|
||
|
||
## ビット数 {#bitcount}
|
||
|
||
数値のバイナリ表現で一つに設定されたビット数を計算します。
|
||
|
||
**構文**
|
||
|
||
``` sql
|
||
bitCount(x)
|
||
```
|
||
|
||
**パラメータ**
|
||
|
||
- `x` — [整数](../../sql-reference/data-types/int-uint.md) または [浮動小数点数](../../sql-reference/data-types/float.md) 番号 この関数は、メモリ内の値表現を使用します。 浮動小数点数をサポートできます。
|
||
|
||
**戻り値**
|
||
|
||
- 入力番号の一つに設定されたビット数。
|
||
|
||
この関数は、入力値をより大きな型に変換しません ([符号拡張](https://en.wikipedia.org/wiki/Sign_extension)). 例えば, `bitCount(toUInt8(-1)) = 8`.
|
||
|
||
タイプ: `UInt8`.
|
||
|
||
**例**
|
||
|
||
たとえば、数333を取る。 そのバイナリ表現:00000000101001101。
|
||
|
||
クエリ:
|
||
|
||
``` sql
|
||
SELECT bitCount(333)
|
||
```
|
||
|
||
結果:
|
||
|
||
``` text
|
||
┌─bitCount(333)─┐
|
||
│ 5 │
|
||
└───────────────┘
|
||
```
|
||
|
||
[元の記事](https://clickhouse.tech/docs/en/query_language/functions/bit_functions/) <!--hide-->
|