Comando para dividr o numero por unidades

17 respostas
P

Boa tarde,
estou precisando fazer um exercicio de java que tem que transformar um numero decimal para binario.
Verifiquei a formula para fazer isso, porem cada numero tem que ser elevador a potencia de maneira diferente, alguem saberia me dizer se existe algum comando no java que me faca um numero ficar particionado em unidades?

ex
25667
2 5 6 6 7

e outra duvida mais simples ainda, como estou seguindo a postila caelum, eles ainda nao chegaram na parte de receber do teclado, alguem pdoeria me informar o comando que recebe dados do teclado e o escopo dele de onde coloco a variavel que ira receber esse dado.

Muito obrigado!

17 Respostas

peczenyj

Vc poderia converter para string, converter então para um array de chars e depois converter cada char para int, interativamente.

P

eh ate que seria uma boa ideia, porem faria isso no casting? int para String eh aceito no casting? :S

valeu!

mario.fts

usa

Integer.toString(arg0);

onde arg0 é o int que vc quer converter.

rmendes08

Esquece isso … é complicar à toa. Se o que você precisa mesmo é fazer a conversão de decimal para binário a melhor maneira é você efetura divisões sucessivas até o resultado der 0 e pegar os restos das divisões. Para fazer a entrada do teclado dê uma olhada na classe java.util.Scanner.

peczenyj

é claro que trabalhar com potencias de 2, %, / e - iterativamente ninguem quer :frowning:

M

Pedro,

tente

Integer.toBinaryString(numero em decimal)

no caso da leitura dos dados do teclado, aconselho a usar a classe Scanner como o amigo acima citou.

Flw

P

opa vou tentar com esse comando ai tmb :smiley:

sobre a leitura do teclado,

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

porem preciso receber 10 numeros via teclado, ai pensei, ou coloco de um em um , ou digito de forma que cadaenter que eu aperte ele se aloque ou espere no final parase alocar.

existe a segunda opcao ? valeu :smiley:
valeu!

P

Agradeco a todos pelo comando de binary, que com certeza iria aliviar minha vida.

Porem olhem o exercicio:

Escreva um programa em Java que leia um número a partir do teclado e escreva seu valor binário. Atenção !!! É objetivo da questão que você implemente o algorítimo de escreve o número binário.

acredito que seja necessario pegar o numero digitado e dividr por unidade :T

alguem teria ideia de como poderei dividir ele por unidades?

valeu!

P

mario,
como acessarei o string da posicao 1?
fiz o comando coforme me passou, porem na hora de imprimir ele imprime normalmente como se fosse o int. porem como posso acessar o bloco 1 desse string?

valeu!

mario.fts

pedrolima88:
mario,
como acessarei o string da posicao 1?
fiz o comando coforme me passou, porem na hora de imprimir ele imprime normalmente como se fosse o int. porem como posso acessar o bloco 1 desse string?

valeu!

String num = "12345";
			
			for(int i = 0; i< num.length(); i++){
				System.out.println(num.charAt(i));
			}

o método charAt() pega o caracter na posição que vc passar (começando em 0)

de uma olhada em http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html, lá vc pode ver todos os métodos da classe.

[]s

P

Mario,
valeu cara! naosabia que podia usar length sem ser em array ^^

bom vou tentar aqui, muito obrigado! pelo site tambem!
[]'s

victorwss

Porque que as pessoas tem tanto medo de matemática?

A forma mais simples é usar os operadores "/" e "%".
A melhor forma (e um tanto complicada e avançada) é usar os operadores ">>" e "&".

claudneto
pedrolima88:
Mario, valeu cara! naosabia que podia usar length sem ser em array ^^

bom vou tentar aqui, muito obrigado! pelo site tambem!
[]'s

O length funciona da mesma forma pra String ou vetor, mas é diferente.

String s = "Hello World!";
int x = s.length(); //Pra String, o length é um método. Retorna 12;

int[] vetor = new int[10];

int y = vetor.length; //Pra vetor, o length é um atributo (eu acho). Retorna 10;
P

hmmmmm
se parecem^^
soh a pratica para lembrar mesmo… valeu pessoal :smiley:

T

victorwss:
Porque que as pessoas tem tanto medo de matemática?

A forma mais simples é usar os operadores "/" e "%".
A melhor forma (e um tanto complicada e avançada) é usar os operadores ">>" e "&".

As pessoas aprendem que não saber matemática é aceitável e até mesmo “chique”.
Isso é pior com as meninas, mas os meninos também não são incentivados a saber matemática.
E conversão de bases não envolve nada avançado, basta simples divisões.
Acho que aritmética modular deveria ser ensinada antes na escola, e com coisas mais concretas. Até hoje é difícil ver alguém que saiba fazer contas com horas, minutos e segundos direito.

rmendes08

pedrolima88:
opa vou tentar com esse comando ai tmb :smiley:

sobre a leitura do teclado,

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

porem preciso receber 10 numeros via teclado, ai pensei, ou coloco de um em um , ou digito de forma que cadaenter que eu aperte ele se aloque ou espere no final parase alocar.

existe a segunda opcao ? valeu :smiley:
valeu!

int n[] = new int[10]
Scanner sc = new Scanner( System.in );
for( int i = 0 ; i < n.length ; i++ ){
   n[i] = sc.nextInt();
}

Com esse código você pode tanto digitar 10 inteiros separados por espaços e pressionar ENTER ou digitar cada número em uma linha. Funciona dos dois jeitos.
Quanto ao algoritmo, acredite, é bem mais fácil pegar os restos das divisões por 2.

P

Hehe sem duvidas!
usando o mod e invertendo a posicao dos resultados obtive o resultado do meu programa :smiley:

obrigado a todos voces mais uma vez :smiley:

Criado 20 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 17
Participantes 8