メインコンテンツまでスキップ

bit_shift_right_logical

bit_shift_right

概要

数値式のバイナリ表現を指定されたビット数だけ右にシフトします。

この関数は算術右シフトを行い、ビット長は変化せず、最下位ビットが破棄され、符号ビットが高位ビットとして使用されます。例えば、10101を1ビット右にシフトすると、11010になります。

構文

bit_shift_right(, シフト数)

パラメータ

:シフトする値または数値式です。サポートされるデータ型はTINYINT、SMALLINT、INT、BIGINT、LARGEINTです。

シフト数:シフトするビット数です。サポートされるデータ型はBIGINTです。サポートされるデータ型はBIGINTです。

返り値

と同じ型の値が返されます。

使用上の注意

  • 入力パラメータのいずれかがNULLの場合、NULLが返されます。
  • シフト数が0未満の場合、0が返されます。
  • を0ビットシフトする場合は常に元のが返されます。
  • 0シフト数だけシフトする場合は常に0が返されます。
  • のデータ型が数値であるが整数ではない場合、その値は整数にキャストされます。を参照してください。
  • のデータ型が文字列である場合、可能であれば値は整数にキャストされます。例えば、文字列 "2.3" は2にキャストされます。値が整数にキャストできない場合、値はNULLとして扱われます。を参照してください。

数値をシフトするためにこの関数を使用します。

SELECT bit_shift_right(2, 1);
+-----------------------+
| bit_shift_right(2, 1) |
+-----------------------+
| 1 |
+-----------------------+

SELECT bit_shift_right(2.2, 1);
+-------------------------+
| bit_shift_right(2.2, 1) |
+-------------------------+
| 1 |
+-------------------------+

SELECT bit_shift_right("2", 1);
+-------------------------+
| bit_shift_right('2', 1) |
+-------------------------+
| 1 |
+-------------------------+

SELECT bit_shift_right(-2, 1);
+------------------------+
| bit_shift_right(-2, 1) |
+------------------------+
| -1 |
+------------------------+

参考