- Categorias:
BITSHIFTLEFT¶
Move os bits para uma expressão numérica n
posições para a esquerda.
- Aliases:
BIT_SHIFTLEFT
- Consulte também:
Sintaxe¶
BITSHIFTLEFT( <expr1> , <n> )
Argumentos¶
expr1
Esta expressão deve ser avaliada como um tipo de dados que pode ser convertido em
INTEGER
.n
O número de bits a serem movidos.
Retornos¶
Isto retorna um inteiro assinado de 128 bits (16 bytes), independentemente do tamanho ou tipo de dados do valor dos dados de entrada.
Notas de uso¶
Se o tipo de dados de qualquer argumento for numérico mas não
INTEGER
(por exemplo, FLOAT, DECIMAL etc.), então esse argumento será convertido emINTEGER
.Se o tipo de dados de qualquer argumento for uma cadeia de caracteres (por exemplo,
VARCHAR
), então o argumento será convertido emINTEGER
se possível. Por exemplo, a cadeia de caracteres ‘12,3’ será convertida em 12. Se o valor não puder ser convertido emINTEGER
, então o valor será tratado como NULL.Se qualquer argumento for NULL, o resultado será NULL.
O resultado é um número inteiro assinado. Se o valor do bit alto mudar (de 0 para 1, ou de 1 para 0), o sinal do resultado será invertido. Por exemplo,
BITSHIFTLEFT(1, 127)
retorna um número negativo.Os bits que são deslocados para além do final do valor de saída de 128 bits são descartados.
Exemplos¶
Este exemplo mostra como usar BITSHIFTLEFT
e BITSHIFTRIGHT
:
Criar uma tabela e dados simples:
CREATE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);INSERT INTO bits (ID, bit1, bit2) VALUES ( 11, 1, 1), -- Bits are all the same. ( 24, 2, 4), -- Bits are all different. ( 42, 4, 2), -- Bits are all different. ( 1624, 16, 24), -- Bits overlap. (65504, 0, 65504), -- Lots of bits (all but the low 6 bits) ( 0, NULL, NULL) -- No bits ;Executar a consulta:
SELECT bit1, bit2, BITSHIFTLEFT(bit1, 1), BITSHIFTRIGHT(bit2, 1) FROM bits ORDER BY bit1;Saída:
+------+-------+-----------------------+------------------------+ | BIT1 | BIT2 | BITSHIFTLEFT(BIT1, 1) | BITSHIFTRIGHT(BIT2, 1) | |------+-------+-----------------------+------------------------| | 0 | 65504 | 0 | 32752 | | 1 | 1 | 2 | 0 | | 2 | 4 | 4 | 2 | | 4 | 2 | 8 | 1 | | 16 | 24 | 32 | 12 | | NULL | NULL | NULL | NULL | +------+-------+-----------------------+------------------------+