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.
Conversao decimal para binario, hexadecimal e octal!
18 Respostas
- Instale o JDK inteirinho, incluindo src.zip (não é só fazer next, next, next, seu preguiçoso)
- Descompacte o arquivo java/lang/Integer.java
- Copie as conversões que estão prontinhas lá dentro…
Para converter da base 10 para outra base x
- Divida o número pela base, o resto é o primeiro dígito, da direita para a esquerda
- O resultado da divisão anterior você divide novamente e adiciona o dígito à esquerda do dígito anterior
- 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:
- 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)
- Multiplique cada dígito pela base elevada ao índice correspondente obtido no passo 1.
- 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!

thingol valeu pela dica so q achei os metodos muito complicados, mas e muito interessante! Muito Obrigado ai valeu renato3110!
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 
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” 
Mas teu prigrama me ajudou bastante, heheheh… tinha que converter 2357 números, agora só faltam 1285 c/ casas decimais… 
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 
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
Renato, vc nem considerou números “com vírgula”
Mas teu prigrama me ajudou bastante, heheheh… tinha que converter 2357 números, agora só faltam 1285 c/ casas decimais… ;)
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.