Conversao decimal para binario, hexadecimal e octal!

Ola, alguem sabe como fazer a conversao de decimal para binario, hexadecimal e octal, eu precisaria do calculo de conversao, os metodos eu achei, mas meu professor quer o calculo, me ajudem please!
Desde já grato.

  1. Instale o JDK inteirinho, incluindo src.zip (não é só fazer next, next, next, seu preguiçoso)
  2. Descompacte o arquivo java/lang/Integer.java
  3. Copie as conversões que estão prontinhas lá dentro…

Para converter da base 10 para outra base x

  1. Divida o número pela base, o resto é o primeiro dígito, da direita para a esquerda
  2. O resultado da divisão anterior você divide novamente e adiciona o dígito à esquerda do dígito anterior
  3. Repita esse processo até a divisão for igual a zero (o dividendo é menor que a base)

Lembrando que na base 16, os dígitos vão de 0 a 15, sendo os dígitos de ordem 10 a 15 representados pelas letras A a F, respectivamente.

Exemplo: 666 (base 10) = 29A (base 16), pois:

666 / 16 = 41, resto 10 (A) 41 / 16 = 2, resto 9 2 / 16 = 0, resto 2 (o próprio divisor)

Para converter de uma base x para a base 10:

  1. Enumere os dígitos da direita para a esquerda começando do zero, como em um array (observe que o último dígito, que é o primeiro da esquerda para a direita, ficará na “posição” n -1, onde n é o número de dígitos)
  2. Multiplique cada dígito pela base elevada ao índice correspondente obtido no passo 1.
  3. Some os resultados obtidos

Exemplo 29A (base 16) = 666 (base 10), pois:

2            9            A
2 x 16^2  +  9 x 16^1  +  10 x 16^0 = 512 + 144 + 10 = 666

O mesmo princípio serve para as bases binária e octal, e para converter de uma base x para outra y, primeiro converta de x para 10 e depois de 10 para y, como mostrado. Entendeu?

Veja este programa, talvez te ajude

Valeu ai galera, eu consegui resolver isto eu fiz o seguinte:

public class Conv_Binario{
String c="";
int b=0;

public void SetBinario(int d){
 	while((d/2)>=1){	 	
 		c= d % 2 + c;	 		
 		d=d/2;	 	   	
 	}
 	c=d+c;
 }	

public String GetBinario(){
	return c;
}

}

e nos outros so troquei pelas base 16 no hex e 8 no octal!

:slight_smile:
thingol valeu pela dica so q achei os metodos muito complicados, mas e muito interessante! Muito Obrigado ai valeu renato3110!

1 curtida

Alguem me arranja o source code deste programa?
Era realmente urgente.

Cumprimentos
César Maciel
Portugal

Dez real rapá!

Trabalho de faculdade?

Esse programa é em Delphi…

moço…
queres 10 reais por isso?

cumps

Não, é só uma brincadeira :smiley:

Cumps???

Já está com métodos estáticas, pra facilitar…


/**
 * Converter illustrates a sample usage of the << and >> operators.  They
 * are used to convert between binary and decimal.
 *
 * @author Mark Roth
 */

public class Converter {

  /**
   * Execution starts here
   */
  public static void main( String[] args ) {
    System.out.println( "66 in binary is: " + decToBinary( 66 ) );
    System.out.println( "10110 in decimal is: " + 
      binaryToDec( "10110" ) );
  }

  /**
   * Converts decimal to binary
   *
   * @param dec The decimal number to convert
   * @return A string containing the binary number.
   */
  public static String decToBinary( int dec ) {
    String result = "";

    while( dec > 0 ) {
      result = (dec & 1) + result;
      dec >>= 1;
    }

    return result;
  }

  /**
   * Converts binary to decimal
   *
   * @param bin The binary number to convert
   * @return An integer containing the decimal number.
   */
  public static int binaryToDec( String bin ) {
    int i, result = 0;

    for( i = 0; i < bin.length(); i++ ) {
      result <<= 1;
      if( bin.charAt( i ) == '1' ) result++;
    }

    return result;
  }

}

Renato, vc nem considerou números “com vírgula” :frowning:
Mas teu prigrama me ajudou bastante, heheheh… tinha que converter 2357 números, agora só faltam 1285 c/ casas decimais… :wink:

Não acredito que você pegou o “prigrama” e converteu à mão mais de 1000 números um a um. :shock:

Na verdade dei uma boa exagerada, eram só uns 10 :wink:

Mas era mais p/ conferir, dado que eu tenho que entregar resolvido à mão (cálculo numérico - matéria chaaataaa), como minha calculadora quase show não faz essas conversões, aproveitei que achei o teu “prigrama” quase sem querer e usei…

Olá, conheço um site que vai ao encontro de seu interesse:

http://www.calculadoraonline.com.br/view/conversao-decimal.php

Até mais!

desculpa, mais acho que a calculadora do windows (modo científico) faz essas conversões

[quote=lalesan]Renato, vc nem considerou números “com vírgula” :frowning:
Mas teu prigrama me ajudou bastante, heheheh… tinha que converter 2357 números, agora só faltam 1285 c/ casas decimais… ;)[/quote]

Acho que conversoes usando double e float nao ira mostrar uma resposta exata…

Veja a materia ai…

Abraços

Post duplo… :S

Calculadora do Ruindows mostra a conversão passo a passo também?

http://www.calculadoraonline.com.br/view/conversao-binario-passo-a-passo.php

Aé? A calculadora do ruindows converte mostrando os processos de conversão passo a passo? Acho que não.

Veja essa excelente calculadora: http://www.calculadoraonline.com.br/view/conversao-decimal-passo-a-passo.php

Essa mostra todo o processo de conversão passo a passo.