C# Operador de Deslocamento à Esquerda (<<)

C Operador De Deslocamento A Esquerda



Na programação C#, podemos usar os operadores Bitwise para executar as operações em nível de bit. O cálculo do nível de bit é feito na CPU quando realizamos operações aritméticas como adição, subtração, multiplicação ou divisão. Também podemos fazer operações Bitwise na programação C# e o processo é simples. Os operadores bit a bit executam uma operação no valor fornecido. O número de bits a serem deslocados também é especificado. Existem seis operadores Bitwise na linguagem C#, dois deles são operadores shift.

Nosso tópico de discussão é sobre os operadores de turno. O operador de deslocamento à esquerda bit a bit (<<) será explicado em detalhes. O operador shift, como o nome sugere, desloca o bit da posição especificada para a esquerda ou para a direita. O valor é movido para a esquerda pelo número especificado de bits durante o uso do operador de deslocamento à esquerda bit a bit (<<). Os operadores de deslocamento à esquerda aceitam a entrada apenas em int (inteiro), uint (inteiro sem sinal), long (inteiro longo) e ulong (inteiro longo sem sinal). Quando o operando esquerdo pertence a um tipo diferente, ele é convertido para o tipo inteiro. O tipo de dados do valor resultante mantém um limite de 32 bits; a saída não pode ser maior do que isso. Os operadores bit a bit tornam o código eficiente e mais rápido. Além disso, eles oferecem mais exatidão e precisão.

Sintaxe:

Operando_1 << Operando_2







O primeiro “Operand_1” é o valor que é deslocado da esquerda para o número de deslocamentos que o “Operand_2” contém. O símbolo << à esquerda desloca o “Operando_1”.



Exemplo 1:

O operador de deslocamento à esquerda bit a bit (<<) é aplicado aos valores inteiros neste programa.



usando Sistema;

aula Programa_1
{
vazio estático Principal ( ) {
int Valor_0 = 3. 4 ;
int Valor_1 = 65 ;
int res = Valor_0 << Valor_1;
Console.Write ( 'O shift esquerdo é  ' ) ;
Console.Write ( res ) ;
}
}

A primeira instrução contém a declaração e inicialização de duas variáveis ​​do tipo inteiro. A primeira variável é “Value_0” e a segunda variável é “Value_1”. Os valores que são armazenados neles são “34” e “65”. Deslocamos à esquerda o valor 34 usando o operador de deslocamento à esquerda (<<). Em seguida, declaramos outra variável que possui um tipo de dado inteiro para salvar o resultado. Aqui, utilizamos o operador de deslocamento à esquerda (<<) como Value_0 << Value_1. Esse operador à esquerda desloca o valor esquerdo do operando esquerdo pelo valor fornecido no segundo operando. O “res” armazena a saída do operador shift. Depois disso, chamamos o método Console.Write() para imprimir o texto “The left shift is” e o valor resultante que é armazenado em “res” no terminal.





Exemplo 2:

Vamos usar o operador shift esquerdo nos valores inteiros sem sinal e ver como eles produzem a saída.



usando Sistema;

classe Programa_2
{
vazio estático Principal ( ) {
uint Val_0 = 4435 ;
int  Val_1 = 64 ;
uint resultado = Val_0 << Val_1;
Console.Write ( 'O deslocamento à esquerda é' ) ;
Console.Write ( resultado ) ;
}
}

Aqui, aplicamos o operador de deslocamento à esquerda no valor do tipo inteiro sem sinal. Uma coisa que você deve tomar cuidado é que o segundo operando deve ser um valor do tipo inteiro porque o compilador só leva um valor inteiro para deslocar.

Depois de chamar a função estática void Main(), declaramos duas variáveis ​​– uma das quais é um valor inteiro sem sinal “Val_0” e a outra é um valor inteiro “Val_1”. Em seguida, definimos outra variável inteira sem sinal que é “resultado” para manter o valor resultante após o deslocamento à esquerda do inteiro sem sinal. Não podemos armazenar o resultado em uma variável de tipo inteiro porque, após o deslocamento à esquerda, o resultado é um valor sem sinal. A instrução “Val_0 << Val_1” desloca à esquerda o operando esquerdo que é um valor inteiro sem sinal. Ele produz um valor inteiro sem sinal. Ao final, mostre o resultado na tela de saída com o texto “The left shift is” usando o método Console.Write():

Exemplo 3:

Neste caso, falaremos sobre os diferentes métodos de uso do operador de deslocamento à esquerda bit a bit (<<) em valores inteiros longos.

usando Sistema;

aula Programa_3
{
vazio estático Principal ( ) {
número longo_0 = Quatro cinco ;
número longo_1 = 5 ;

Console.Write ( 'O deslocamento à esquerda de long é ' ) ;
Console.WriteLine ( número_0 << 3 ) ;
Console.Write ( 'O deslocamento à esquerda de long é ' ) ;
Console.Write ( número_0 << Convert.ToInt16 ( número 1 ) ) ;
}
}

A inicialização de duas variáveis ​​do tipo inteiro longo, “number_0” e “number_1”, é feita na primeira instrução. Invoque a função Console.Write() para representar a mensagem “The left shift of long is” e o resultado no terminal. Aqui, aplicamos o operador de deslocamento à esquerda (<<) de forma que colocamos o primeiro operando como a primeira variável e o segundo operando como um valor inteiro. O compilador desloca para a esquerda o primeiro operando que é “number_0” por 3 e exibe o resultado. Na próxima instrução, imprima outra mensagem na tela empregando o método Console.Write(). Aqui, utilizamos a primeira variável, “number_0”, como o primeiro operando e a segunda variável, “number_1”, como o segundo operando. O segundo operando deve ser um valor do tipo inteiro. Nós typecast a segunda variável “number_1” para o tipo inteiro usando a função Convert.ToInt16(). Em seguida, exiba o resultado no console:

Exemplo 4:

Este código mostra como podemos atribuir os valores a um número inteiro após executar o deslocamento à esquerda no operador unsigned long.

usando Sistema;

aula Programa_4
{
vazio estático Principal ( ) {
cabeça número_0 = 445 ;

Console.Write ( 'O deslocamento à esquerda de ulong é' ) ;
Console.WriteLine ( número_0 << 8 ) ;
Console.Write ( 'O deslocamento à esquerda de ulong é' ) ;
Console.WriteLine ( número_0 << 16 ) ;
Console.Write ( 'O deslocamento à esquerda de ulong é' ) ;
Console.WriteLine ( número_0 << 32 ) ;

}
}

Primeiro, declare uma variável de tipo inteiro longo sem sinal que é “number_0”. Em seguida, mostre o texto “The left shift of ulong is” no terminal chamando o método Console.Write(). Encontraremos o deslocamento à esquerda do “number_0” por um valor inteiro de 8 e não precisamos armazenar o resultado em nenhum lugar. A função Console.WriteLine() imprime o resultado no console. Repita este processo duas vezes e altere os valores do segundo operando. Ao fazer isso, podemos encontrar o deslocamento à esquerda de um valor de tipo inteiro sem sinal longo. Mas se quisermos salvar o valor resultante em uma variável, devemos ter em mente que o resultado é do mesmo tipo do primeiro operando. A única diferença entre Console.Write() e Console.WriteLine() é que a segunda função imprime o resultado e envia o cursor para a próxima linha enquanto a primeira função apenas imprime o resultado e o cursor pisca na mesma linha mesmo depois exibindo a saída.

Conclusão

Exploramos os operadores Bitwise em C#, seus tipos e funcionalidades. O operador de deslocamento à esquerda (<<) é aplicado para deslocar o número ou valor pelo número definido de bits para a esquerda. Os operadores Bitwise melhoram a eficiência do código e não sobrecarregam o sistema por serem operadores leves. Nossa CPU (unidade de processamento do computador) funciona no nível Bitwise sempre que realizamos qualquer operação aritmética. Resumindo, os operadores Bitwise são importantes na programação e C# suporta todos os operadores Bitwise em que o operador shift à esquerda (<<) é um deles.