Ir para conteúdo
Fórum Script Brasil
  • 0

Somar Bits


Guest Pilhas

Pergunta

Boa noite...

Será que alguém me poderá ajudar kom este problema:

Escreva um programa que receba um número do utilizador e que indique quantos

dos seus bits são 1. Deverá utilizar os operadores bit a bit & e >> (respectivamente

e bit a bit e deslocamento para a direita).

é que eu não entendo os operadores >> e & :huh:

Desde já Obrigado....

... Pilhas ...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Interessante o exercício! :) Nunca tinha visto antes, mas solucionei aqui em menos de 5 minutos. Então, como a idéia é fazer você pensar para chegar a solução, não tem graça eu entregar o código assim de bandeja... Portanto, é melhor se eu explicar o funcionamento dos operadores >> e &.

O operador & (E bit-a-bit) compara os bits de dois valores retornando a operação lógica E realizada entre eles. Ou seja, se for 0 E 1 vai dar 0, já que a regra do "E" é que só dá 1 quando ambos os valores são 1. Por exemplo, se fizermos uma operação E bit-a-bit entre 5 e 2 teremos 0, já que:

5 em binário 101
2 em binário 010
--------------------
5 E 2 =====  000
Já se fizermos entre 7 e 2 teremos o valor 2, já que:
7 em binário 111
2 em binário 010
--------------------
7 E 2 =====  010
Compara-se cada bit do primeiro com cada bit do segundo valor, resultando em 0 ou 1. Para ficar mais claro, vai mais um exemplo, 9 E 7 que resulta em 1:
9 em binário 1001
7 em binário 0111
--------------------
9 E 7 =====  0001
Agora o operador de deslocamento de bit para a direita (>>) funciona exatamente como seu nome sugere, ou seja, ele desloca ("empurra") os bits para a direita, incluindo n zeros e retirando n bits do final. Por exemplo, se fizermos...
9 >> 1

... vamos ter 4, já que 9 em binário é 1001 e se deslocarmos 1 bit para a direita teremos 0100, o que em decimal é 4. Se fizessemos 9 >> 2 deslocaríamos 2 bits e então teríamos o valor 2 (0010).

Sacou? ;)

Agora é só matutar aí como fazer a contagem.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...