Categorias:

Funções de expressões bit a bit

BITNOT

Retorna a negação bit a bit de uma expressão numérica.

Aliases:

BIT_NOT

Sintaxe

BITNOT( <expr> )
Copy

Argumentos

expr

Esta expressão deve ser avaliada como um tipo de dados que pode ser convertido em INTEGER.

Retornos

Retorna um número inteiro que representa a negação da expressão de entrada.

Notas de uso

  • Se o tipo de dados do argumento for numérico mas não INTEGER (por exemplo, FLOAT, DECIMAL etc.), então o argumento será convertido em INTEGER.

  • Se o tipo de dados do argumento for uma cadeia de caracteres (por exemplo, VARCHAR), então o argumento será convertido em INTEGER, se possível. Por exemplo, a cadeia de caracteres ‘12,3’ é convertida em 12. Se o valor não puder ser convertido em INTEGER, então o valor será tratado como NULL.

  • Se o argumento for NULL, o resultado será NULL.

Exemplos

Este exemplo mostra como usar BITNOT:

Criar uma tabela e dados simples:

CREATE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);
Copy
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
    ;
Copy

Executar a consulta:

SELECT bit1, bit2, BITNOT(bit1), BITNOT(bit2)
  FROM bits
  ORDER BY bit1;
Copy

Saída:

+------+-------+--------------+--------------+
| BIT1 |  BIT2 | BITNOT(BIT1) | BITNOT(BIT2) |
|------+-------+--------------+--------------|
|    0 | 65504 |           -1 |       -65505 |
|    1 |     1 |           -2 |           -2 |
|    2 |     4 |           -3 |           -5 |
|    4 |     2 |           -5 |           -3 |
|   16 |    24 |          -17 |          -25 |
| NULL |  NULL |         NULL |         NULL |
+------+-------+--------------+--------------+
Copy