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.
- 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
[quote=lalesan]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… ;)[/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.