すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:ビット関数と演算子

最終更新日:Sep 14, 2024

ビット関数と演算子を使用して、バイナリデータを処理できます。 このトピックでは、AnalyticDB for MySQLのビット関数と演算子の構文と例について説明します。

  • BIT_COUNT: 引数をバイナリ値に変換し、値で1に設定されているビット数を返します。

  • &: bitwise AND。

  • ~: すべてのビットを反転します。

  • |: bitwise OR。

  • ^: ビット単位のXOR。

  • >> (BITWISE_RIGHT_SHIFT): 値を右にシフトします。

  • << (BITWISE_LEFT_SHIFT): 値を左にシフトする。

BIT_COUNT

bit_count(bigint x)
bit_count(double x)
bit_count(varchar x)
  • 説明: この関数は、引数をバイナリ値に変換し、値で1に設定されているビット数を返します。

  • 戻り値のデータ型: BIGINT。

  • 例:

    select bit_count(2);
    +--------------+
    | bit_count(2) |
    +--------------+
    |            1 |
    select bit_count(pi());
    +-----------------+
    | bit_count(pi()) |
    +-----------------+
    |               2 |
    select bit_count('123');
    +------------------+| 
    bit_count('123') |
    +------------------+
    |                6 | 

&

  • 説明: この関数はビット単位のANDに使用されます。

  • 戻り値のデータ型: BIGINT。

  • 例:

     select 12 & 15;
    +---------------------+
    | bitwise_and(12, 15) |
    +---------------------+
    |                  12 |

~

  • 説明: この関数はすべてのビットを反転します。

  • 戻り値のデータ型: BIGINT。

  • 例:

    select 2 & ~1;
    +--------------------------------+
    | bitwise_and(2, bitwise_not(1)) |
    +--------------------------------+
    |                              2 |

|

  • 説明: この関数はビット単位のORに使用されます。

  • 戻り値のデータ型: BIGINT。

  • 例:

    select 29 | 15;
    +--------------------+
    | bitwise_or(29, 15) |
    +--------------------+
    |                 31 |

^

  • 説明: この関数はビット単位のXORに使用されます。

  • 戻り値のデータ型: BIGINT。

  • 例:

    select 1 ^ 10;
    +--------------------+
    | bitwise_xor(1, 10) |
    +--------------------+
    |                 11 | 

>> (BITWISE_RIGHT_SHIFT)

bitwise_right_shift(double x, double y) 
bitwise_right_shift(varchar x, varchar y)
bitwise_right_shift(bigint x, bigint y)
  • 説明: この関数は値を右にシフトします。

  • 戻り値のデータ型: BIGINT。

  • 例:

    select 3 >> 2;
    +---------------------------+
    | bitwise_right_shift(3, 2) |
    +---------------------------+
    |                         0 |
    select 3.4 >> 23.2;
    +--------------------------------+
    | bitwise_right_shift(3.4, 23.2) |
    +--------------------------------+
    |                              0 |

<< (BITWISE_LEFT_SHIFT)

bitwise_left_shift(double x, double y) 
bitwise_left_shift(varchar x, varchar y)
bitwise_left_shift(bigint x, bigint y)
  • 説明: この関数は値を左にシフトします。

  • 戻り値のデータ型: BIGINT。

  • 例:

    SELECT 3 << 2;
    +--------------------------+
    | bitwise_left_shift(3, 2) |
    +--------------------------+
    |                       12 |
    select '3' << '2';
    +------------------------------+
    | bitwise_left_shift('3', '2') |
    +------------------------------+
    |                           12 |
    select 3.4 << 23.2;
    +-------------------------------+
    | bitwise_left_shift(3.4, 23.2) |
    +-------------------------------+
    |                      25165824 |