bit_shift_left
説明
数値式の2進数表現を指定されたビット数だけ左にシフトします。
この関数は算術左シフトを行い、ビット長は変わらず、末尾に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になります。0をshiftでシフトすると、常に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 |
+-----------------------+