Duvida em exercício

27 respostas
T

Boa noite pessoal,

estou iniciando agora em Java, mas infelizmente não pude comparecer a uma aula na semana passada em que o professor propos o seguinte exercicio:
Declare um inteiro de valor 10 e mostre na tela o valor do terceiro bit mais significativo (da direita para a esquerda).

será que alguem pode me explicar o que fazer e como fazer?

Agradeço desde já :smiley:

27 Respostas

Zeed01

Boa noite Galera,

Thais_Baracat

Ola colega, seja bem vinda ao GUJ !
Bom, sem querer te desanimar, mas a galera do GUJ não é muito fã de post´s pedindo pra resolver exercicios.
Se você quiser postar quais suas dúvidas, mesmo que seja, como declarar um inteiro, aposto que muitos vão ajudar, apesar que isso também quebra uma das principais regras de etiqueta do forum: “Pergunte primeiro ao Google”.

Bom, desculpe falar isso, mas só estou tentando ajudar…

Mas vamos lá… qual a sua dúvida ?
Você conhece alguma coisa em Java ?

No seu exercicio, acho que tudo deve comecar mais ou menos assim:

public class QualquerNome {

          public static void main(String[] args) {
                    int i = 10;
          }


}

[]s

T

desculpa mas nao foi a intenção pedir a para resolverem o exercício !

tenho uma noção em java sim, OO e tudo mais, e também jah sei declarar as variáveis e agregar um valor a elas mas não entendi o que ele quis dizer com o “exiba na tela o valor do terceiro bit mais significativo”.
ficarei muito grata se aguem puder me ajudar (e nao fazer pare mim!)

rogelgarcia

Pode te ajudar…

http://www.javaframework.org/portal/2010/03/16/entendendo-a-plataforma-java-para-leigos/

Dá uma noçao das “coisas” de java…

rogelgarcia

Thais_Baracat:
exiba na tela o valor do terceiro bit mais significativo

Mas seu professor tá forçando a barra também…

Andre_Brito

Você sabe o que é o bit mais significativo? Se sim, o terceiro fica fácil de encontrar, né? :stuck_out_tongue:

B

Realmente está osso entender o que esse profº quer.

Lendo o que vc escreveu, parece que ele quer o inteiro 10, óbvio.

Para imprimir o 3º valor terá que fazer um for que imprima um valor igual a 3.

Se não for isso, posso te passar meu telefone para maiores questionamentos (brincadeira).

Zeed01

Boa noite Galera,

Desculpe, não quis ofender… só dar umas dicas sobre o pessoal do forum.

Bom, na primeira leitura do seu problema o que me veio a cabeça foi conveter o inteiro de valor 10 em 1010 e imprimir o terceiro bit, no caso o 1010.
Da direita para a esquerda… o terceiro bit significativo seria “0”.

Foi o que entendi…

[]s

B

A outra foto era melhor…

B

Com certeza vc não está estudando na Caelum, esse tipo de exercício sem noção deve ser de faculdade com aqueles professores que querem ensinar Java sem OO, acredite já vi isso.

rogelgarcia

Concordo…

Concordo…

Zeed01

Boa noite Galera,

Google responde:

O “bit” mais a direita, chamado o bit menos significativo ou (LSB) tem o menor peso inteiro de 2^0 = 1.
O “bit” mais a esquerda é o bit mais significativo ou (MSB) pois ele comporta o maior peso na determinação do valor do número neste caso, ele tem um peso de 2^3 = 8.

Para converter o binario 1010 em seu equivalente decimal, fazemos:
0 = 0 x 2^0 = 0
1 = 1 x 2^1 = 2
0 = 0 x 2^0 = 0
1 = 1 x 2^3 = 8

Somando tudo: 0+2+0+8 = 10

Logo o primeiro ZERO da direita é o bit menos significativo, e o ultimo UM da esquerda, é o mais significativo, logo o terceiro bit mais signficativo seria o segundo ZERO.

[]s

P.S. - Concordo com todos os concordos acima, rsrsrs.

rogelgarcia

Zeed01:
Boa noite Galera,

Desculpe, não quis ofender… só dar umas dicas sobre o pessoal do forum.

Bom, na primeira leitura do seu problema o que me veio a cabeça foi conveter o inteiro de valor 10 em 1010 e imprimir o terceiro bit, no caso o 1010.
Da direita para a esquerda… o terceiro bit significativo seria “0”.

Foi o que entendi…

[]s

É isso mesmo

O código para imprimir o terceiro bit mais significativo é esse:

int numero = 10; System.out.println((numero & 4) >> 2);

Funciona para qualquer número :shock:

T

amanha eu vejo na escola com alguém colé a do professor com esse exercicio, com certeza ele explico algo sobre isso na aula que eu faltei…
muito obrigada aos que tentaram ajudar

rogelgarcia

Leva esse código pra ele…

int numero = 10; System.out.println((numero & 4) >> 2);

Vamos ver o que ele fala…

T

Pode deixar! amanhã dou o feedback…

boa noite !

pedroroxd

Aeee thaís!
O professor que dá aula pra ela foi o mesmo que deu aula pra mim…
Pediu o mesmo exercício…
kkkk
Ps(aki é o pedro colega da sua irmã)

Não lembro como fiz na época, mas axo que isso deve resolver:

Scanner scnSeuscanner = new Scanner(System.in); System.out.println("Digite um número"); int number = scnSeuscanner.nextInt(); System.out.println("O bit + significativo é: " + ((number& 4) >> 2));
Ah, e tudo que eu sei de java, eu devo 5% ao curso de informática (o que você está fazendo).
Se você quiser aprender realmente, estude um pouco de OO (diagramas), e baixe a apostila FJ-11 do Caelum (Java e Orientação a Objetos), e depois, pegar algum livro na biblioteca (ai da Fai mesmo, como Java Como programar, Core Java, e Use a Cabeça Java ou o do Deitel mesmo {como ultima opção, como diz o rogelgarcia}).
E procure saber as vantagens e desvantagens da IDE que ele pede pra você usar (NetBeans), pesquise sobre Eclipse.

rogelgarcia

Como sempre falo: Eu DESrecomendo o Deitel :smiley: tá virando spam essa minha frase

pedroroxd

Thais_Baracat:
Pode deixar! amanhã dou o feedback…

boa noite !


Cadê o feedback? kkkk

rogelgarcia

Ela nao deu o feedback… mas pelo menos voltou com a foto…

B

Concordo…

rogelgarcia

ahhahahahaha

pedroroxd

kkkkkk
tinha demorado !

T

ops! é que esqueci que só tenho aula de java na segunda, então só lá que o professor vai ver xD
ahahaha

pedroroxd

Thais_Baracat:
ops! é que esqueci que só tenho aula de java na segunda, então só lá que o professor vai ver xD
ahahaha

Ah…
Ta explicado…
Paulo e seus exercícios! kkkkk

marcelo.bellissimo

To vendo que esses cursos são todos iguais… eu lembro na minha época, a aula de “Lógica de Programação” era feita usando C, depois passaram pra Java, mas ensinando do mesmo jeito que C.

Depois reclamam que não tem “profissional qualificado”, ensinam tudo errado… ¬¬

rogelgarcia

Só explicando aqui o algorítmo :

numero & 4

É matemática binária… multiplicacao binária…

o >> tá “arredando” os bits duas casas para a direita…

o 4 em números binário é 100

Repare que o número 1 fica no terceiro bit… que é o bit que o professor pediu…

Quando fazemos o 4 (ou 100) com o número… usando o operador &… só deixamos ligado o terceiro bit…

Se for 1 ele permanece 1… se for 0 ele permanece zero… e os outros todos ficam zero…

Aí eu arredo esse número duas casas a direita com o >> para saber qual número é…

pedroroxd

marcelo.bellissimo:
To vendo que esses cursos são todos iguais… eu lembro na minha época, a aula de “Lógica de Programação” era feita usando C, depois passaram pra Java, mas ensinando do mesmo jeito que C.

Depois reclamam que não tem “profissional qualificado”, ensinam tudo errado… ¬¬


Concordo com você…
A lógica está ficando de ado…
Eu penso que antes de se encinar qualqr linguagem, tem que ter exercícios de lógica, e bastante algorítimo…

Criado 17 de março de 2010
Ultima resposta 19 de mar. de 2010
Respostas 27
Participantes 7