Ir para conteúdo
Entre para seguir isso  
ravelont

Criptografia Binário e Cifra (ASCII)

Recommended Posts

ravelont    3
ravelont

Agora o que vocês irão fazer com ambas é de sua imaginação.

 

Decimal / Binário

public static void converter (int valor_a) { // método converte decimal em binário
	a = valor_a;
	int calculo_converter;	
	String binario = "";

	for (int b = a; b >= 0; b/=2){ // divide o valor divisivel por 2.

		calculo_converter = b%2; // calcula o resto e gera os números binários.
		binario += Integer.toString(calculo_converter); // converte o calculo p/ string.

		if (b == 0){
			break;
		}
	} // fim do for.	

	for (int x = binario.length()-1; x >=0; x--){ // inverter o binário
		binario_reverso += binario.charAt(x);			
	} 		
}	

public static void reverter (String binario){ // método converte binário em decimal
	String c = binario;
	int e = c.length(); // ultima matriz.	
	int reverter, calculo_reverter=0;

	for (int d = 0; d <= c.length()-1; d++){	
		e--; // redução de matriz

		reverter = Integer.parseInt(Character.toString(c.charAt(d))); // pegar o primeiro binário (converte char p/ string, string p/int)

		calculo_reverter = reverter*2; // calcula binario*2
		decimal += (int)(Math.pow(calculo_reverter,e));	// potencializa calculo*matriz convertendo para decimal.						
	} 
}

 

Criptografia Cifra:

public static void Converter(String valor_a){
	valor = valor_a;		
	int tamanho = valor.length();

	for (int a = 0; a <= valor.length()-1; a++){			
		tamanho--;
		converter_palavra += Integer.toString(tamanho + 1);
	}
}

public static void Reverter(String teste){
	String valorB = teste;	
	int reverter, calculo;

	for (int b = valorB.length()-1; b >= 0; b--){										
		reverter = Integer.parseInt(Character.toString(valorB.charAt());
		calculo = reverter -1;	
		reverter_palavra += valor.charAt(calculo);		
	}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Raphael Carnaúba    1
Raphael Carnaúba

Eaí blza? acho que tem um probleminha no código.

 

Converter Dec/Bin:

Decimal: 20 -> Binario: 010100 (Pela calculadora: 10100)

 

Reverter Bin/Dec:

Binario: 010100 -> Decimal: 21 (Wtf? )

 

Abraços,

Carnaúba

 

EDIT:

 

Consegui arrumar, você tava fazendo:

100 = ((0*2)^0) = 1, (0*2)^1 = 0, (1*2)^2 = 4, somando = 5

o correto seria 4.

arrumando:

100 = 0*(2^0) + 0*(2^1) + 1*(2^2), somando = 4

 

 

public static void reverter (String binario)
{ 
       String c = binario;
       int e = c.length(); 
       int reverter, calculo_reverter=0;

       for (int d = 0; d < c.length(); d++)
       {    
           e--; // redução de matriz

           reverter = Integer.parseInt(Character.toString(c.charAt(d))); 

           calculo_reverter += reverter*(int)Math.pow(2, e);
           decimal = calculo_reverter;
       } 
}

Editado por Raphael Carnaúba

Compartilhar este post


Link para o post
Compartilhar em outros sites
ravelont    3
ravelont

Realmente ali errei na precedência do cálculo, obrigado!

Editado por ravelont

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×