Ir ao conteúdo

Significado >> e <<


aegospm

Posts recomendados

Postado

Olá, pessoal! Estou dando uma estudada em linguagem C e me deparei com os seguintes símbolos: << e >>.

Não entendi o que significa. Eu fiz o seguinte:

int a=26;

1- printf("%d\n",a>>4);

2- printf("%d\n",a<<3);

3- printf("%d\n",a>>4<<3);

Para o caso 1, saiu 1. Para o 2, 208. Para o 3, 8.

Alguém poderia dar uma força? Como entender essas sinbologias? O que significam?

Até mais...

Postado

É o operador de deslocamento lógico.

Por exemplo:

int a = 8; /* digamos que o número 8 seja representado binariamente por 00001000 (é só um exemplo). */
printf("%d", a >> 2); /* imprime o número 2, ou seja, 0000010 */
printf("%d", a << 2); /* imprime o número 32, ou seja, 00100000 */

Espero ter ajudado.

ZaZ.

Postado
Olá, pessoal! Estou dando uma estudada em linguagem C e me deparei com os seguintes símbolos: << e >>.

Não entendi o que significa. Eu fiz o seguinte:

int a=26;

1- printf("%d\n",a>>4);

2- printf("%d\n",a<<3);

3- printf("%d\n",a>>4<<3);

Para o caso 1, saiu 1. Para o 2, 208. Para o 3, 8.

Alguém poderia dar uma força? Como entender essas sinbologias? O que significam?

Até mais...

É como o colega acima disse.

É válido também saber que cada deslocamento (<< e >> são operadores de descolamento bit-a-bit) para a direita equivale a dividir o número por 2, e cada deslocamento para a esquerda equivale a multiplicar por 2.

1 - 26 >> 4 seria:

26 / 2 = 13. 13 / 2 = 6. 6 / 2 = 3. E finalmente 3/2 = 1.

ou 26 / (2^4) = 26/16 = 1.

2 - 26 << 3 seria:

26 x 2 = 52. 52 x 2 = 104. E finalmente 104 x 2 = 208.

ou 26 x (2^3) = 26 x 8 = 208.

3 - Os operadores << e >> tem a mesma precedência, logo 26 >> 4 << 3 seria:

O resultado de (1), 26 / 2^4 = 1, deslocado 3 casas para esquerda:

26 >> 4 << 3 = (26 / 16) << 3 = 1 << 3

1 << 3 = 1 x (2^3) = 1 x 8 = 8.

É difícil ver isso sem ter conhecimento sobre números binários.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...