Torna alla versione inglese della documentazioneOperazioni bitwise sui numeri interi
Operazioni di numero intero bitwise (SPSS Modeler)
Ultimo aggiornamento: 07 ott 2024
Queste funzioni consentono la manipolazione dei numeri interi come schemi di bit rappresentanti valori in complemento a due, in cui alla posizione di bit N
corrisponde il peso 2**N
.
I bit sono numerati a partire da 0 a salire. Queste operazioni vengono eseguite come se il bit del segno di un numero intero venisse esteso a sinistra in modo indefinito. Di conseguenza, in qualsiasi posizione precedente al bit più significativo, un numero intero positivo dispone di 0 bit e un numero intero negativo di 1 bit.
Funzione | Risultato: | Descrizione |
---|---|---|
~~ INT1 |
Intero | Genera il complemento bitwise del numero intero INT1. Ovvero, c'è un 1 nel risultato per ogni posizione di bit per cui INT1 ha 0. È sempre vero che ~~ INT =
–(INT + 1) . |
INT1 || INT2 |
Intero | Il risultato di questa operazione è costituito dall'OR inclusivo bitwise di INT1 e INT2. Nel risultato è quindi presente un 1 per ogni posizione di bit in cui si riscontra un 1 in INT1 o INT2 oppure in entrambi. |
INT1 ||/& INT2 |
Intero | Il risultato di questa operazione è costituito dall'OR esclusivo bitwise di INT1 e INT2. Nel risultato è quindi presente un 1 per ogni posizione di bit in cui si riscontra un 1 in INT1 o in INT2, ma non in entrambi. |
INT1 && INT2 |
Intero | Genera l'AND bitwise dei numeri interi INT1 e INT2. Nel risultato è quindi presente un 1 per ciascuna posizione di bit in cui si riscontra un 1 sia in INT1 che in INT2. |
INT1 &&~~ INT2 |
Intero | Genera l'AND bitwise di INT1 e il complemento bitwise di INT2. Nel risultato è quindi presente un 1 per ogni posizione di bit in cui si riscontra un 1 in INT1 e uno 0 in INT2. Equivale a INT1 && (~~INT2) e si rivela utile per cancellare i bit di INT1 impostati in INT2. |
INT << N |
Intero | Genera lo schema di bit di INT1 con spostamento a sinistra di N posizioni. L'utilizzo di un valore negativo per N determina uno spostamento a destra. |
INT >> N |
Intero | Genera lo schema di bit di INT1 con spostamento a destra di N posizioni. L'utilizzo di un valore negativo per N determina uno spostamento a sinistra. |
INT1 &&=_0 INT2 |
Booleano | Equivale all'espressione booleana INT1 && INT2 /== 0 , ma offre una maggiore efficienza. |
INT1 &&/=_0 INT2 |
Booleano | Equivale all'espressione booleana INT1 && INT2 == 0 , ma offre una maggiore efficienza. |
integer_bitcount(INT) |
Intero | Conta il numero di bit 1 o 0 nella rappresentazione in complemento a due di INT. Se INT non è negativo, N corrisponderà al numero di bit 1. Se INT è negativo, rappresenterà il numero di bit 0. A causa dell'estensione del segno, in un numero intero non negativo è presente un numero infinito di bit 0 e un numero intero negativo contiene un numero infinito di bit 1. È sempre valida la regola integer_bitcount(INT) = integer_bitcount(-(INT+1)) . |
integer_leastbit(INT) |
Intero | Restituisce la posizione di bit N dell'insieme di bit meno significativo nel numero intero INT. N rappresenta la più elevata potenza di 2 per cui INT può essere diviso esattamente. |
integer_length(INT) |
Intero | Restituisce la lunghezza in bit di INT come intero in complemento a due. Ovvero, N è l'intero più piccolo, ad esempio INT < (1 << N) if INT >= 0 INT >= (–1 <<
N) if INT < 0 . Se INT non è negativo, per la rappresentazione di INT come numero intero senza segno sarà richiesto un campo di almeno N bit. In alternativa, per rappresentare INT come numero intero con segno, sarà richiesto un minimo di N+1 bit, indipendentemente dal segno. |
testbit(INT, N) |
Booleano | Verifica il bit in posizione N nel numero intero INT e restituisce lo stato del bit N sotto forma di valore booleano, ovvero vero per 1 e falso per 0. |