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

bit_shift_left

bit_shift_left

説明

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

この関数は、算術左シフトを実行します。ビットの長さは変わらず、末尾には0が追加され、上位ビットは変わりません。例えば、10101を1ビット左にシフトすると、11010になります。

構文

bit_shift_left(value, shift)

パラメータ

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

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

返り値

valueと同じ型の値を返します。

使用上の注意

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

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

SELECT bit_shift_left(2, 1);
+----------------------+
| bit_shift_left(2, 1) |
+----------------------+
| 4 |
+----------------------+

SELECT bit_shift_left(2.2, 1);
+------------------------+
| bit_shift_left(2.2, 1) |
+------------------------+
| 4 |
+------------------------+

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

SELECT bit_shift_left(-2, 1);
+-----------------------+
| bit_shift_left(-2, 1) |
+-----------------------+
| -4 |
+-----------------------+

参考