Guest Pilhas Postado Março 25, 2007 Denunciar Share Postado Março 25, 2007 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 quantosdos seus bits são 1. Deverá utilizar os operadores bit a bit & e >> (respectivamentee bit a bit e deslocamento para a direita).é que eu não entendo os operadores >> e & :huh: Desde já Obrigado....... Pilhas ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 25, 2007 Denunciar Share Postado Março 25, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Pilhas
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
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.