Operatore C# Bitwise Left Shift (<<).

Operatore C Bitwise Left Shift



Nella programmazione C#, possiamo usare gli operatori Bitwise per eseguire le operazioni a livello di bit. Il calcolo a livello di bit viene eseguito nella CPU quando eseguiamo operazioni aritmetiche come addizione, sottrazione, moltiplicazione o divisione. Possiamo anche eseguire operazioni Bitwise nella programmazione C# e il processo è semplice. Gli operatori Bitwise eseguono un'operazione sul valore dato. Viene inoltre specificato il numero di bit da spostare. Esistono sei operatori Bitwise nel linguaggio C#, due dei quali sono operatori di spostamento.

Il nostro argomento di discussione riguarda gli operatori di turno. L'operatore di spostamento a sinistra bit per bit (<<) verrà spiegato in dettaglio. L'operatore shift, come suggerisce il nome, sposta il bit dalla posizione specificata a sinistra oa destra. Il valore viene spostato a sinistra del numero di bit specificato durante l'utilizzo dell'operatore di spostamento a sinistra bit a bit (<<). Gli operatori di spostamento a sinistra prendono l'input solo in int (intero), uint (intero senza segno), long (intero lungo) e ulong (intero lungo senza segno). Quando l'operando sinistro appartiene a un tipo diverso, viene convertito nel tipo intero. Il tipo di dati del valore risultante mantiene un limite di 32 bit; l'output non può essere maggiore di quello. Gli operatori bit a bit rendono il codice efficiente e veloce. Inoltre, offrono maggiore accuratezza e precisione.

Sintassi:

Operando_1 << Operando_2







Il primo “Operand_1” è il valore che viene spostato da sinistra al numero di turni che contiene “Operand_2”. Il simbolo << a sinistra sposta l'“Operando_1”.



Esempio 1:

L'operatore di spostamento a sinistra bit per bit (<<) viene applicato ai valori interi in questo programma.



utilizzando il sistema;

classe Programma_1
{
vuoto statico principale ( ) {
int Valore_0 = 3. 4 ;
int Valore_1 = 65 ;
int ris = Valore_0 << Valore_1;
Console.Scrivi ( 'Lo spostamento a sinistra è  ' ) ;
Console.Scrivi ( ris ) ;
}
}

La prima istruzione contiene la dichiarazione e l'inizializzazione di due variabili di tipo intero. La prima variabile è 'Valore_0' e la seconda variabile è 'Valore_1'. I valori che sono memorizzati in essi sono '34' e '65'. Abbiamo spostato a sinistra il valore 34 utilizzando l'operatore di spostamento a sinistra (<<). Quindi, dichiariamo un'altra variabile che ha un tipo di dati intero per salvare il risultato. Qui, utilizziamo l'operatore di spostamento a sinistra (<<) come Valore_0 << Valore_1. Questo operatore sposta a sinistra il valore a sinistra dell'operando sinistro del valore dato nel secondo operando. La 'res' memorizza l'output dell'operatore shift. Successivamente, chiamiamo il metodo Console.Write() per stampare il testo 'Lo spostamento a sinistra è' e il valore risultante memorizzato in 'res' sul terminale.





Esempio 2:

Usiamo l'operatore di spostamento a sinistra sui valori interi senza segno e vediamo come producono l'output.



utilizzando il sistema;

classe Programma_2
{
vuoto statico principale ( ) {
uint Val_0 = 4435 ;
int  Val_1 = 64 ;
uint risultato = Val_0 << Val_1;
Console.Scrivi ( 'Lo spostamento a sinistra è' ) ;
Console.Scrivi ( risultato ) ;
}
}

Qui, applichiamo l'operatore di spostamento a sinistra sul valore di tipo intero senza segno. Una cosa di cui devi occuparti è che il secondo operando deve essere un valore di tipo intero perché il compilatore accetta solo un valore intero da spostare.

Dopo aver chiamato la funzione static void Main(), dichiariamo due variabili, una delle quali è un valore intero senza segno 'Val_0' e l'altra è un valore intero 'Val_1'. Quindi, definiamo un'altra variabile intera senza segno che è 'risultato' per mantenere il valore risultante dopo aver spostato a sinistra l'intero senza segno. Non possiamo memorizzare il risultato in una variabile di tipo intero perché dopo lo spostamento a sinistra, il risultato è un valore senza segno. L'istruzione 'Val_0 << Val_1' sposta a sinistra l'operando a sinistra che è un valore intero senza segno. Produce un valore intero senza segno. Alla fine, mostra il risultato nella schermata di output con il testo 'The left shift is' usando il metodo Console.Write():

Esempio 3:

In questo caso, parleremo dei diversi metodi di utilizzo dell'operatore di spostamento a sinistra bit per bit (<<) su valori interi lunghi.

utilizzando il sistema;

classe Programma_3
{
vuoto statico principale ( ) {
lungo numero_0 = Quattro cinque ;
lungo numero_1 = 5 ;

Console.Scrivi ( 'Lo spostamento a sinistra di lungo è' ) ;
Console.WriteLine ( numero_0 << 3 ) ;
Console.Scrivi ( 'Lo spostamento a sinistra di lungo è' ) ;
Console.Scrivi ( numero_0 << Convert.ToInt16 ( numero 1 ) ) ;
}
}

L'inizializzazione di due variabili di tipo intero lungo, 'numero_0' e 'numero_1', viene eseguita nella prima istruzione. Richiamare la funzione Console.Write() per rappresentare il messaggio 'The left shift of long is' e il risultato sul terminale. Qui applichiamo l'operatore di spostamento a sinistra (<<) in modo tale da posizionare il primo operando come prima variabile e il secondo operando come valore intero. Il compilatore sposta a sinistra il primo operando che è 'numero_0' di 3 e visualizza il risultato. Nell'istruzione successiva, stampa un altro messaggio sullo schermo utilizzando il metodo Console.Write(). Qui, utilizziamo la prima variabile, 'numero_0', come primo operando e la seconda variabile, 'numero_1', come secondo operando. Il secondo operando deve essere un valore di tipo intero. Eseguiamo il typecast della seconda variabile 'number_1' nel tipo intero utilizzando la funzione Convert.ToInt16(). Quindi, visualizza il risultato sulla console:

Esempio 4:

Questo codice mostra come possiamo assegnare i valori a un numero intero dopo aver eseguito lo spostamento a sinistra sull'operatore lungo senza segno.

utilizzando il sistema;

classe Programma_4
{
vuoto statico principale ( ) {
testa numero_0 = 445 ;

Console.Scrivi ( 'Lo spostamento a sinistra di ulong è' ) ;
Console.WriteLine ( numero_0 << 8 ) ;
Console.Scrivi ( 'Lo spostamento a sinistra di ulong è' ) ;
Console.WriteLine ( numero_0 << 16 ) ;
Console.Scrivi ( 'Lo spostamento a sinistra di ulong è' ) ;
Console.WriteLine ( numero_0 << 32 ) ;

}
}

Innanzitutto, dichiara una variabile di tipo intero lungo senza segno che è 'numero_0'. Successivamente, mostra il testo 'The left shift of ulong is' sul terminale chiamando il metodo Console.Write(). Troveremo lo spostamento a sinistra del 'numero_0' di un valore intero di 8 e non abbiamo bisogno di memorizzare il risultato da nessuna parte. La funzione Console.WriteLine() stampa il risultato sulla console. Ripetere questo processo due volte e modificare i valori del secondo operando. In questo modo, possiamo trovare lo spostamento a sinistra di un valore di tipo intero senza segno lungo. Ma se vogliamo salvare il valore risultante in una variabile, dovremmo tenere presente che il risultato è dello stesso tipo del primo operando. L'unica differenza tra Console.Write() e Console.WriteLine() è che la seconda funzione stampa il risultato e invia il cursore alla riga successiva mentre la prima funzione stampa solo il risultato e il cursore lampeggia sulla stessa riga anche dopo visualizzando l'output.

Conclusione

Abbiamo esplorato gli operatori Bitwise in C#, i relativi tipi e funzionalità. L'operatore di spostamento a sinistra (<<) viene applicato per spostare il numero o il valore del numero definito di bit a sinistra. Gli operatori Bitwise migliorano l'efficienza del codice e non appesantiscono il sistema poiché sono operatori leggeri. La nostra CPU (unità di elaborazione del computer) funziona a livello Bitwise ogni volta che eseguiamo operazioni aritmetiche. In poche parole, gli operatori Bitwise sono importanti nella programmazione e C# supporta tutti gli operatori Bitwise in cui l'operatore di spostamento a sinistra (<<) è uno di questi.