UInt8、UInt16、UInt32、UInt64、Int8、Int16、Int32、Int64、Float32、Float64 の任意の組み合わせの型に対して動作します。一部の関数は、String 型および FixedString 型もサポートしています。
結果の型は、引数の中で最大のビット数を持つ整数型になります。少なくとも 1 つの引数が符号付きの場合、結果は符号付き整数になります。引数が浮動小数点数の場合は、Int64 にキャストされます。
bitAnd
a AND b の結果を返します
例
使用例
Query
Response
bitCount
x のうち、1 に設定されているビットの数を返します。UInt8。
この関数は、入力値をより大きい型に変換しません (符号拡張) 。
例:
bitCount(toUInt8(-1)) = 8。Query
Response
bitHammingDistance
SimHash 関数と組み合わせて使用できます。
距離が小さいほど、文字列同士はより類似しています。
構文
x と y のハミング距離を返します UInt8
例
使用例
Query
Response
bitNot
~a の結果、つまり a の各ビットを反転した値を返します。
例
使用例
Query
Response
bitOr
a OR b の結果を返します
例
使用例
Query
Response
bitRotateLeft
a— ローテーションする値。(U)Int8/16/32/64N— 左にローテーションする位置数。UInt8/16/32/64
a と同じ型の、ローテーション後の値を返します。(U)Int8/16/32/64
例
使用例
Query
Response
bitRotateRight
a— 回転させる値。(U)Int8/16/32/64N— 右方向に回転させる位置数。UInt8/16/32/64
a と同じ型の回転後の値を返します。(U)Int8/16/32/64
例
使用例
Query
Response
bitShiftLeft
FixedString または String は、1 つの複数バイト値として扱われます。
FixedString の値は、シフトによって外に押し出されたビットが失われます。
一方、String の値は追加のバイトで拡張されるため、ビットは失われません。
構文
a— シフト対象の値。(U)Int*またはStringまたはFixedStringN— シフトする位置数。UInt8/16/32/64
a と同じ型のシフト後の値を返します。
例
バイナリエンコーディングの使用例
Query
Response
Query
Response
Query
Response
bitShiftRight
FixedString または String は、1 つのマルチバイト値として扱われます。
FixedString の値では、シフトによって外に出たビットは失われます。
一方、String の値は追加のバイトで拡張されるため、ビットは失われません。
構文
a— シフト対象の値。(U)Int*またはStringまたはFixedStringN— シフトする位置数。UInt8/16/32/64
a と同じ型のシフト後の値を返します。
例
バイナリエンコーディングでの使用例
Query
Response
Query
Response
Query
Response
bitSlice
-
s— スライス対象のStringまたはFixedString。StringまたはFixedString -
offset— 開始ビット位置を指定します (1 始まり) 。 - 正の値: 文字列の先頭から数えます。
-
負の値: 文字列の末尾から数えます。
(U)Int8/16/32/64またはFloat* -
length— 省略可能。抽出するビット数です。 -
正の値:
lengthビットを抽出します。 -
負の値:
offsetから(string_length - |length|)までを抽出します。 -
省略時:
offsetから文字列の末尾までを抽出します。 -
lengthが 8 の倍数でない場合、結果の右側は 0 で埋められます。(U)Int8/16/32/64またはFloat*
String
例
使用例
Query
Response
bitTest
a— 変換する数値。(U)Int8/16/32/64またはFloat*i— 返すビットの位置。(U)Int8/16/32/64またはFloat*
a のバイナリ表現における位置 i のビット値を返します。UInt8
例
使用例
Query
Response
bitTestAll
a— 整数値。(U)Int8/16/32/64index1, ...— 1 つ以上のビットの位置。(U)Int8/16/32/64
UInt8 で返します
例
使用例 1
Query
Response
Query
Response
bitTestAny
true であれば true になります。
構文
a— 整数値。(U)Int8/16/32/64index1, ...— 1 つ以上のビット位置。(U)Int8/16/32/64
UInt8
例
使用例 1
Query
Response
Query
Response
bitXor
a XOR b の結果を返します
例
使用例
Query
Response