:?: :?: :?: :?:
Eai Galera como vão,
Preciso de um programa que faz essa converção de binario para decimal;
:?: :?: :?:
:?: :?: :?: :?:
Eai Galera como vão,
Preciso de um programa que faz essa converção de binario para decimal;
:?: :?: :?:
[code]import javax.swing.*;
public class transbase{//cria um a classe transbase
public static void main( String args[]){
int num=0;
String obj1=" ";
obj1=JOptionPane.showInputDialog(null,“Digite um numero Inteiro :”);
num=Integer.parseInt(obj1);
convercao c;
c = new convercao(num);
c.binario();
System.exit(0);
}
}
// Rodrigo Reis
import javax.swing.*;
public class convercao {// crie uma classe convercao
int num;
public convercao ( int n) {
num=n;
}
/*
public class binario2 { // Esse e de Decimal para Binario
public static int bin_int(String S){
//String S = bin.toString();
int j =0;
for(int i=0; i < S.length(); i++){
j = j+ Integer.parseInt(S.substring(i,i+1))* (int)Math.pow(2,i);
}
return(j);
}
public static void main(String args[]){
int k = bin_int((“11101000”)); //Informe o Binario aqui
System.out.println(k);
//System.exit(0);
}
}
*/
public void binario( ){
String obj1="";
int r ,cont, i;
int vet[];
vet=new int [100];
i=0;
while (num != 0)
{
i= i + 1;
r=num % 2;
vet[i] = r;
num = num / 2;
}
obj1=" ";
for(cont=i;cont>=1;cont–)
obj1+=String.valueOf(vet[cont]);
JOptionPane.showMessageDialog(null,obj1,“Valor correspondente em Binário”,JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}[/code]
[color=“red”]editado por Felipe: use bbcode para melhorar a visualizacao do codigo[/color]
Olá,
como este portal trata de java, a seguir um exemplo da maneira mais prática de se transformar binários em decimal. Tirando o “overhead” do programinha abaixo, Integer.parseInt() faz toda a “mágica” (note que não é necessário nenhum cálculo, diferentemente da solução apresentada por RodReis - talvez não seja o que você/seu professor estejam esperando!):
public class Bin2Dec {
public static void main(String args[]) {
String bin = javax.swing.JOptionPane.showInputDialog(
"Informe um numero em binario (somente 1s e 0s)");
try {
javax.swing.JOptionPane.showMessageDialog(
null, bin + " ==> " + String.valueOf(Integer.parseInt(bin, 2)));
}
catch (NumberFormatException e) {
javax.swing.JOptionPane.showMessageDialog(
null, bin + " nao eh binario nao...");
}
System.exit(0);
}
}
pra converter pra numeros decimais e na base 10 ne???
Estao pq vc n usa
(Integer.parseInt(bin, 10)));
???
[quote=“Ratinho”]pra converter pra numeros decimais e na base 10 ne???
Estao pq vc n usa
(Integer.parseInt(bin, 10)));
???[/quote]
huhh?!?!?
bases (binario octal, decimal, hexadecimal) servem apenas para confundir processadores de humanos!
computadores não tem nada disso. só guardam bits.
Por outro lado, e por convenção, o padrão do java aspresentar números para humanos é na base decimal.
Então, quando um método como parseInt retorna um inteiro, este será apresentado na base dez.
O que pode variar é o que passamos para este método.
Por exemplo, se temos um binário, “10” (2 base 10), e queremos descobrir quanto vale em decimal, precisamos ser bem explícitos e informar ao método o quê estamos passando.
Algo assim:
“Senhor ParseInt, favor converter “10”, que é binário, para decimal”
poderá ser traduzido para:
parseInt( “10”, “que é binário”)
mas, os especialistas que desenvolveram a linguagem não quiseram correr o risco que expressões como a acima poderiam gerar, e convencionaram que a base do argumento passado seria definida com inteiros, 2, 8, 10 , 16, (e como o sdk não coloca nenhuma restrição, podemos também inventar nossas próprias bases) daí, se testarmos “10” com diversas bases, teremos resultados diferentes.
Agora, se temos “10” e queremos o inteiro na base 10 (?), basta um parse simples, como em
parseInt(“10”)
mas, se queremos saber quanto “10” base 2 corresponde em decimais fazemos
parseInt(“10”, 2)
que resulta em 2 na base 10.
Boa tarde
Obrigado pela boa vontade é que tem um probleminha, eu não sei nada de java só conheco Delphi, VB, Asp.
æ VBK81, faz o seguinte:
Cria um arquivo chamado BinToDec.java com o seguinte:
public class BinToDec {
public static void main(String args[]){
System.out.print(args[0] + " = ");
System.out.println(Integer.parseInt(args[0], 2));
System.exit(0);
}
}
Crie então um arquivo de lote (.bat) com o seguinte:
[code]@echo off
javac BinToDec.java
java BinToDec 1010010
java BinToDec 1010
java BinToDec 101111
pause[/code]
Detalhe você deverá ter o j2sdk para compilar o código, isso vc deve saber não é ?
Então o que o bat vai fazer ?
1º Compilar o código que você criou e já sair executando com alguns valores binários. Hah e ele dá um pause para vc final o lote…
Qualquer dúvida é só postar…
Hah e bem vindo ao mundo Java…
Abraço,
Maicon
Em qual programa que eu crio aqules arquivos
no melhor editor que existe…
NOTEPAD :lol:
Tranquilo ?
Abraço,
Maicon
Criei no Bloco de notas os dois arquivos
1º BinToDec.java
2º aqui a duvida é BinToDec.bat
VBK81, é o seguinte:
Esqueci de lhe perguntar mas vc usa Windows ou Linux ?
Quanto ao .java tá blz, é só criar esse arquivo com o conteúdo que lhe falei, tanto faz sendo windows ou linux.
Se vc está mexendo em windows e vc criar um arquivo com extensão .bat vc terá um executável de dos, aí ele faz a compilação conforme a segunda linha q lhe passei e depois os testes.
Mas se vc estiver mexendo em linux aí é outra coisa, dá pra fazer comandos com sh…
O bat é só um executável dos para rodar todas as linhas, mas se vc quiser ir no msdos e fazer tudo no braço, linha por linha é só executar as linhas que lhe passei.
Abraço,
Maicon
APESAR DE TER INSTALADO O LINUX EU TO USANDO O WINDOWS
QUANDO EU RODO O PROGRAMA APARECE QUATRO VEZES ESCRITA A LINHA
COMANDO OU NOME DE ARQUIVO INVALIDO
VBK81,
Primeiramente é o seguinte:
Seu windows não está conseguinte encontrar nem o javac.exe, nem o java.exe, isso quer dizer que ou vc não está com o java sdk instalado, ou vc não setou as variáveis de ambiente corretamente…
O que fazer ?
Se vc não tem java instalado vc deve baixar o jsd do site da sun ( java.sun.com ) e obviamente instalá-lo, mas se vc tiver o java instalado uma solução é colar os dois arquivos na pasta bin do java, ou onde se encontram os arquivos javac.exe e java.exe para execução (Se preferir use o localizar do windows) e execute naquela pasta mesmo, garanto que da certo.
Hah, só gostaria de lhe pedir um favorzinho: Evite escrever em caixa alta (todas as letras em maiúsculo) pois dá impressão que vc está gritando com a passoa a quem vc se dirige, creio que não foi sua intenção… Corrija-ma se eu estiver errado.
Abraço,
Maicon
Bah foi mal nem pensei por esse lado desculpa qualquer coisa.
o java.exe eu achei
o javac.exe eu não achei
Tranqüilo VBK81.
Você deve ter instalado na sua máquina o JRE, que é somente os executáveis para rodar programas java, mas não para compilar.
Basicamente:
JRE = Virtual Machine para rodar programas Java.
J2SDK = Virtual Machine para rodar programas + executáveis para compilar códigos para para bytecode (java para class).
Resultado, vc vai ter que gastar um pouquinho de banda e baixar o J2SDK do site da SUN… :lol:
Depois do j2sdk instalado vc acha com certeza.
Qualquer coisa só postar aí, blz ?
Abraço,
Maicon
Ruindows!!!
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
To baixando esse ai, vê se ta certo?
J2SE v 1.4.2_05 SDK
E sim kra…
Tp… depois q vc baixar, n esquece d setar as variaveis!!!
Como assim variaveis???
Mudando de assunto pelo jeito você usa linux, sabe onde eu posso achar o driver para meu modem
Uso o Conectiva linux 10
e o meu modem é o Intel Ham data Fax modem
Números Inteiros
Um número N na base “B” pode ser escrito como uma série de potências da própria base:
quote = anB^n + an-1B^n-1 + … + a0B^0
Exemplo:
(150) na base 10 = 110^2 + 510^1 + 010^0
(100011) na base 2 = 12^5 + 02^4 + 02^3 + 02^2 + 12^1 + 12^0
2^5 = 32
2^1 = 2
2^0 = 1
assim o número 100011 na base 2 é igual a 35 em decimal
Observe que os coeficientes da série são elementos da base que formarão o número[/quote]
Essa regra serve para converter de qualquer base para qualquer base. Eu fiz um programa em C++ para conversào de bases se alguém quiser dar uma olhadinha é só me pedir que mando no e-mail