Pessoal estou desenvolvendo uma aplicacao que so podera resceber numeros binarios tipo 1001010, alguem tem alguma ideia de como fazer para verificar se na Sting digitada tem algum numero diferente de 1 e 0??
Abracao e te +
Pessoal estou desenvolvendo uma aplicacao que so podera resceber numeros binarios tipo 1001010, alguem tem alguma ideia de como fazer para verificar se na Sting digitada tem algum numero diferente de 1 e 0??
Abracao e te +
bom… grosseiramente… vc pode tentar isso aki
//conciderando string como sendo a string com os binários
string = string.trim(); // tirando os espaçoes em branco
boolean teste = treu;
for (int i =0;i<string.length();i++) {
if (string.charAt(i) != '1') && (string.charAt(i) != '0'){
teste = false;
break;
}
}
//ai vc sabe pelo teste
Eu faria assim:
String str;
String msg = "Numero Inválido";
str = "0110110";
str = str.trim();
for (int i = 0; i < str.length(); i++){
if ((str.charAt(i) != "0")&&(str.charAt(i) != "1")){
System.out.println(msg);
break;
}
}
Tomaz, tentei colocar na aplicacao o eu codigo, mas ele nao compilou. Deve ter alguma coisa q esta dando pau!!
Mark o seu compilou, mas na hora de rodar fiz uns testes com o programa, ele esta quase certo, mas nao consegue dar a mensagem que deu certo. Eu acho q esta dando erro nessa linha d codigo:
impot javax.swing.JOptionPan~e;
public class Binario {
public static void main( String[] args ) {
String binario;
binario = JOptionPane.showInputDialog( " Digite o número " );
binario = binario.trim();
for (int i = 0; i < binario.length(); i++){
// eu acho q esta dando pau na linha abaixo
if ((binario.charAt(i) == '0')&&(binario.charAt(i) == '1')){
System.out.println( " Deu certo " );
break;
}
else{ System.out.println( " deu errado " );
break;
}
}
System.exit( 0 )
}
}
tente rodar essa aplicacao pra ver. Veja se consegue descobrir onde esta o erro!!
Abracao e te +
tenta isso:
impot javax.swing.JOptionPane;
public class Binario {
public static void main( String[] args ) {
boolean certo = true;
String binario;
binario = JOptionPane.showInputDialog( " Digite o número " );
binario = binario.trim();
for (int i = 0; i < binario.length(); i++){
if ((binario.charAt(i) != '0')&&(binario.charAt(i) != '1')){
certo = false;
break;
}
}
if (certo){
// deu certo
}
else{
// deu errado
}
System.exit( 0 )
}
}
Ratinho… é q no meu a string naum está definido… =]
teria que definir antes a variavel string
[quote=“Ratinho”]Tomaz, tentei colocar na aplicacao o eu codigo, mas ele nao compilou. Deve ter alguma coisa q esta dando pau!!
Mark o seu compilou, mas na hora de rodar fiz uns testes com o programa, ele esta quase certo, mas nao consegue dar a mensagem que deu certo. Eu acho q esta dando erro nessa linha d codigo:
impot javax.swing.JOptionPan~e;
public class Binario {
public static void main( String[] args ) {
String binario;
binario = JOptionPane.showInputDialog( " Digite o número " );
binario = binario.trim();
for (int i = 0; i < binario.length(); i++){
// eu acho q esta dando pau na linha abaixo
if ((binario.charAt(i) == '0')&&(binario.charAt(i) == '1')){
System.out.println( " Deu certo " );
break;
}
else{ System.out.println( " deu errado " );
break;
}
}
System.exit( 0 )
}
}
tente rodar essa aplicacao pra ver. Veja se consegue descobrir onde esta o erro!!
Abracao e te +[/quote]
Pessoal + uma pergunta!
Como que eu faco pra verificar de um numero tipo 10010 qual e o seu correspondente em numero real, mas o meu problema e o seguinte. Eu nao sei quantos digitos o numero vai conter, somente sei q ele vai ser um numero real.
Tipo assim, ele um hora pode digitar o numero 1001 e o programa mostrara a resposta em numero real. Mas outra hora ele pode digitar 10101010 ou tb 01, entao o meu problema e esse. Se alguem tiver alguma sugestao!!
Abracao e te +
“numero real”? esta se referindo a float? não to te entendendo…? “numero real” seria em base decimal? vc quer um codigo q passe de binario pra decimal? :roll:
E isso mesmo Matheus, mas o unico problema e que eu nao sei quantos numeros o usuario vai digitar, somente sei q o numero é um real.
Fico claro agora?
Abração e te+
se eu entendi voce quer tranformar numero binario em decimal.
exemplo:
10 bin = 2 decimal,
0x(2^0) + 1x(2^1) = 2
0 + 2 = 2
1010 bin = 10 decimal
0x(2^0) + 1x(2^1) + 0x(2^2) + 1x(2^3) = 10
0 + 2 + 0 + 8 = 10
assim por diante…
se for ponto flutuante:
1,101 bin = 1,625 decimal
1x(2^(-3)) + 0x(2^(-2)) + 1x(2^(-1)) + 1x(2^0) = 1,625
0,125 + 0 + 0,5 + 1 = 1,625
sempre de trás pra frente… aí é só fazer o algoritmo.
pra transformar números inteiros:
JTextField caixa = new (...) // se for ler de um TexField
String str;
double result = 0;
int base = 2; // sempre é 2
int expoente = 0;
str = caixa.getText();
// lê o valor digitado, não precisa transformar em número
for(int i = str.lenght() - 1 ; i>-1 ; i--)
{
if(str.charAt[i] == '1')
result += base.pow(expoente); // 2 ^ expoente
// se for zero não faz nada...
expoente++; // incrementando expoente
}
caixa.setText = ("" + result); //mostra a resposta em decimal...
espero estar ajudando…
Obrigado pela ajuda pessoal!!
Abracao e te +