Esta seção discutirá os operadores de deslocamento bit a bit na linguagem de programação c. O operador de deslocamento bit a bit é usado para deslocar os bits binários na direção esquerda ou direita de acordo com os requisitos do programa.
Os operadores de deslocamento são classificados em dois tipos com base na posição de deslocamento dos bits.
- Operador de deslocamento esquerdo
- Operador de deslocamento para a direita
Operador de deslocamento esquerdo
O operador de deslocamento à esquerda é um tipo de operador de deslocamento bit a bit, que executa operações nos bits binários. É um operador binário que requer dois operandos para deslocar ou mover a posição dos bits para o lado esquerdo e adicionar zeros ao espaço vazio criado no lado direito após deslocar os bits.
Sintaxe
diferença entre um leão e um tigre
var_name << no_of_position
Na sintaxe acima, var_name representa o nome da variável inteira na qual o deslocamento para a esquerda (<<) operation is to be performed shift the binary bits at left side. and no_of_position variable represents number of placed or shifted in other words, operator shifts first operand on side by defined second operand.< p>
Por exemplo, o valor da variável inteira num é 22 e sua forma binária é 10110. Agora usamos o operador de deslocamento à esquerda para deslocar os bits binários 2, o num = num << 2 igual a num = num * (2 ^2). E o novo valor de num é 22* (2 ^ 2) = 88, que é igual à forma binária 1011000.
Exemplo 1: Programa para demonstrar o uso do operador Left Shift em C
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use left shift operator to shift the bits num = (num << 2); // It shifts two bits at the left side printf (' After shifting the binary bits to the left side. '); printf (' The new value of the variable num = %d', num); return 0; }
Saída
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
Exemplo 2: Programa para usar o operador Left Shift nos dados int não assinados do C
programa c para matriz bidimensional
#include int main () { // declare local variable unsigned int num = 0xff; // use left shift operator to shift the bits num = (num << 2); printf (' After shifting the binary bits to the left side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
Saída
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
Exemplo 3: Programa para inserir o número positivo do usuário para realizar o operador Shift à esquerda
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the left side: '); scanf (' %d', &bit); // use left shift operator to shift the bits num = (num << bit); printf (' After shifting the bits to the left side. '); printf (' The new value of the num = %d', num); return 0; }
Saída
Enter a positive number: 40 No. of binary bits shifted to the left side: 4 After shifting the bits to the left side. The new value of the num = 640
No exemplo acima, o bit binário do número positivo 40 definido pelo usuário é 101000. Depois disso, tomamos 4 como o número para deslocar os bits binários no lado esquerdo. E então, o operador de deslocamento para a esquerda desloca 4 bits binários no lado esquerdo, e então é criado um espaço no lado direito, que é preenchido ou adicionado por 4 zeros ao lado direito que retorna o valor binário 1010000000, que é equivalente a o número decimal 640.
Operador de deslocamento para a direita
O operador de deslocamento para a direita é um tipo de operador de deslocamento bit a bit usado para mover os bits no lado direito e é representado como o símbolo de seta dupla (>>). Assim como o operador de deslocamento para a esquerda, o operador de deslocamento para a direita também requer dois operandos para deslocar os bits do lado direito e, em seguida, inserir os zeros no espaço vazio criado no lado esquerdo após o deslocamento dos bits.
Sintaxe
reagir estilo inline
var_name >> no_of_position
Na sintaxe acima, var_name representa a variável inteira na qual a operação de deslocamento para a direita (>>) deve ser executada para deslocar os bits binários no lado direito. E a variável no_of_position representa o número de bits a serem colocados ou deslocados para o lado direito. Em outras palavras, o operador de deslocamento para a direita desloca os bits binários do primeiro operando para o lado direito, definindo o número total de bits para o segundo operando.
Exemplo 1: Programa para demonstrar o uso do operador Right Shift em C
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use right shift operator to shift the bits num = (num >> 2); // It shifts two bits at the right side printf (' After shifting the binary bits to the right side. '); printf (' The new value of the variable num = %d', num); return 0; }
Saída
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
Exemplo 2: Programa para usar o operador Right Shift nos dados int não assinados do C
#include int main () { // declare local variable unsigned int num = 0xff; // use right shift operator to shift the bits num = (num >> 2); printf (' After shifting the binary bits to the right side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
Saída
mockito sempre que
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
Exemplo 3: Programa para inserir o número positivo do usuário para executar o operador Shift à direita
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the right side: '); scanf (' %d', &bit); // use right shift operator to shift the bits num = (num >> bit); printf (' After using the right shift operator to shift the bits at the right side. '); printf (' New value of the num = %d', num); return 0; }
Saída
Enter a positive number: 40 No. of binary bits shifted to the right side: 4 After using the right shift operator to shift the bits to the right. The new value of the num = 2
)>