- Categorias:
BITXOR¶
Retorna XOR bit a bit de duas expressões numéricas.
- Aliases:
BIT_XOR
- Consulte também:
Sintaxe¶
BITXOR( <expr1> , <expr2> )
Argumentos¶
expr1
Esta expressão deve ser avaliada como um tipo de dados que pode ser convertido em
INTEGER
.expr2
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 o XOR bit a bit das expressões de entrada.
Notas de uso¶
Se o tipo de dados de qualquer um dos argumentos for numérico, mas não
INTEGER
(por exemplo, FLOAT, DECIMAL etc.), então o argumento será convertido emINTEGER
.Se o tipo de dados de qualquer um dos argumentos 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’ é convertida em 12. Se o valor não puder ser convertido emINTEGER
, então o valor será tratado como NULL.Se um dos valores for NULL, o resultado será NULL.
Exemplos¶
Este exemplo mostra como usar BITAND()
, BITOR()
e BITXOR()
:
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, BITAND(bit1, bit2), BITOR(bit1, bit2), BITXOR(bit1, BIT2) FROM bits ORDER BY bit1;Saída:
+------+-------+--------------------+-------------------+--------------------+ | BIT1 | BIT2 | BITAND(BIT1, BIT2) | BITOR(BIT1, BIT2) | BITXOR(BIT1, BIT2) | |------+-------+--------------------+-------------------+--------------------| | 0 | 65504 | 0 | 65504 | 65504 | | 1 | 1 | 1 | 1 | 0 | | 2 | 4 | 0 | 6 | 6 | | 4 | 2 | 0 | 6 | 6 | | 16 | 24 | 16 | 24 | 8 | | NULL | NULL | NULL | NULL | NULL | +------+-------+--------------------+-------------------+--------------------+