GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Conversao decimal para binario, hexadecimal e octal!


#1

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.


#2

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...


#3

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?


#4

Veja este programa, talvez te ajude


#5

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!

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


#6

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

Cumprimentos
César Maciel
Portugal


#7

Dez real rapá!

Trabalho de faculdade?

Esse programa é em Delphi...


#8

moço...
queres 10 reais por isso?

cumps


#9

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

Cumps???


#10

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;
  }
}

#11

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:


#12

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


#13

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...


#14

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

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

Até mais!


#15

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


#16

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

Veja a materia ai...

http://javeiros.wordpress.com/2008/06/25/evite-float-e-double-se-voce-quer-respostas-exatas/

Abraços


#17

Post duplo... :S


#18

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

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


#19

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.


#20