Operadores bit a bit (Transact-SQL)
Se aplica a: punto de conexión de SQL Server Azure SQL Database Azure SQL Instancia administrada punto de conexión de SQL Analytics Analytics Platform System (PDW) de SQL Analytics System (PDW) de SQL Server en Microsoft Fabric Warehouse en Microsoft Fabric
Los operadores bit a bit realizan manipulaciones de bits entre dos expresiones de cualquiera de los tipos de datos de la categoría del tipo de datos entero.
Los operadores bit a bit convierten dos valores enteros en bits binarios y llevan a cabo la operación AND
, OR
o NOT
correspondiente en cada bit, lo cual genera un resultado. Luego, convierten el resultado en un entero.
Por ejemplo, el entero 170
se convierte en el binario 1010 1010
.
El entero 75
lo hace en el binario 0100 1011
.
Operador | Cálculo bit a bit |
---|---|
AND Si ambos bits de cualquier posición son 1 , el resultado es 1 . |
1010 1010 = 1700100 1011 = 75----------------- 0000 1010 = 10 |
OR Si alguno de los bits en cualquier posición es 1 , el resultado es 1 . |
1010 1010 = 1700100 1011 = 75----------------- 1110 1011 = 235 |
NOT Invierte el valor de bit en cada posición de bits. |
1010 1010 = 170----------------- 0101 0101 = 85 |
En los artículos siguientes se proporciona más información sobre los operadores bit a bit disponibles en el motor de base de datos:
- & (AND bit a bit)
- &= (AND bit a bit y asignación)
- | (OR bit a bit)
- |= (OR bit a bit y asignación)
- ^ (OR exclusivo bit a bit)
- ^= (OR exclusivo bit a bit y asignación)
- ~ (NOT bit a bit)
Los operadores bit a bit siguientes se introdujeron en SQL Server 2022 (16.x):
Los operandos de los operadores bit a bit pueden ser de cualquiera de los tipos de datos de las categorías de tipos de datos entero o de cadena binaria (excepto el tipo de datos image), con la excepción de que ambos operandos no pueden ser de uno de los tipos de datos de la categoría de tipos de datos de cadena binaria. La siguiente tabla muestra los tipos de datos de operando admitidos.
Operando izquierdo | Operando derecho |
---|---|
binary | int, smallint o tinyint |
bit | int, smallint, tinyint o bit |
bigint | bigint, int, smallint, tinyint, binary o varbinary |
int | int, smallint, tinyint, binary o varbinary |
smallint | int, smallint, tinyint, binary o varbinary |
tinyint | int, smallint, tinyint, binary o varbinary |
varbinary | int, smallint o tinyint |