Volver a la versión inglesa de la documentaciónOperaciones de enteros de nivel de bit
Operaciones de enteros de nivel de bit (SPSS Modeler)
Última actualización: 07 oct 2024
Estas funciones permiten manipular los enteros como patrones de bits que representan valores en complemento a dos, donde la posición del bit N
tiene la ponderación 2**N
.
Los bits se numeran de 0 en adelante. Estas operaciones actúan como si el bit de signo de un entero se extendiera indefinidamente hacia la izquierda. Así, por encima de su bit más significativo, un entero positivo tiene 0 bits y un entero negativo tiene 1 bit.
Función | Resultado | Descripción |
---|---|---|
~~ INT1 |
Entero | Genera el complemento a nivel de bit del entero ENT1. Es decir, hay un 1 en el resultado de cada posición de bits para el que INT1 tiene
0. Siempre es cierto que ~~ INT =
–(INT + 1) . |
INT1 || INT2 |
Entero | El resultado de esta operación es el "o inclusivo" a nivel de bit de ENT1 y ENT2. Es decir, hay un 1 en el resultado de cada posición de bits para la que hay un 1 en ENT1 o ENT2, o en ambos. |
INT1 ||/& INT2 |
Entero | El resultado de esta operación es el "o exclusivo" a nivel de bit de ENT1 y ENT2. Es decir, hay un 1 en el resultado de cada posición de bits para la que hay un 1 en ENT1 o ENT2, pero no en ambos. |
INT1 && INT2 |
Entero | Genera el "y" a nivel de bit de los enteros ENT1 y ENT2. Es decir, hay un 1 en el resultado de cada posición de bits para la que hay un 1 en ENT1 y ENT2. |
INT1 &&~~ INT2 |
Entero | Genera el "y" a nivel de bit de ENT1 y el complemento a nivel de bit de ENT2. Es decir, hay un 1 en el resultado de cada posición de bits para la que hay un 1 en ENT1 y un 0 en ENT2. Esto es lo mismo que INT1 && (~~INT2) y es útil para borrar los bits de INT1 establecidos en INT2. |
INT << N |
Entero | Genera el patrón de bits de ENT1 desplazado a la izquierda N posiciones. Un valor negativo para N genera un desplazamiento a la derecha. |
INT >> N |
Entero | Genera el patrón de bits de ENT1 desplazado a la derecha N posiciones. Un valor negativo para N genera un desplazamiento a la izquierda. |
INT1 &&=_0 INT2 |
Boolean | Es equivalente a la expresión booleana INT1 && INT2 /== 0 pero es más eficiente. |
INT1 &&/=_0 INT2 |
Boolean | Es equivalente a la expresión booleana INT1 && INT2 == 0 pero es más eficiente. |
integer_bitcount(INT) |
Entero | Cuenta el número de bits 1 ó 0 de la representación en complemento a dos de ENT. Si ENT no es negativo, N es el número de bits 1. Si ENT es negativo, es el número de bits 0. Debido a la extensión del signo, hay un número infinito de bits 0 en un entero no negativo, o de bits 1 en un entero negativo. Siempre es el caso que integer_bitcount(INT) = integer_bitcount(-(INT+1)) . |
integer_leastbit(INT) |
Entero | Devuelve la posición de bits N correspondiente al bit menos significativo definido en el entero ENT. N es la potencia más elevada de 2 por la que ENT tiene una división exacta. |
integer_length(INT) |
Entero | Devuelve la longitud en bits de ENT como un entero en complemento a dos. Es decir, N es el entero más pequeño de modo que INT < (1 << N) if INT >= 0 INT >= (–1 <<
N) if INT < 0 . Si ENT no es negativo, la representación de ENT como entero sin signo requiere un campo de al menos N bits. También se requiere un mínimo de N+1 bits para representar ENT como un entero con signo, independientemente de su signo. |
testbit(INT, N) |
Boolean | Comprueba el bit situado en la posición N del entero ENT y devuelve el estado del bit N como un valor booleano, que es verdadero para 1 y falso para 0. |