Parte Inteira
A conversão do número inteiro, de decimal para binário, será feita da direita para a esquerda, isto é, determina-se primeiro o algarismos das unidades ( o que vai ser multiplicado por 20 ) , em seguida o segundo algarismo da direita ( o que vai ser multiplicado por 21 ) etc...
A questão chave, é observar se o número é par ou ímpar. Em binário, o número par termina em 0 e o ímpar em 1. Assim determina-se o algarismo da direita, pela simples divisão do número por dois; se o resto for 0 (número par) o algarismo da direita é 0; se o resto for 1 (número ímpar) o algarismo da direita é 1.
Por outro lado, é bom lembrar que, na base dez, ao se dividir um número por dez, basta levar a vírgula para a esquerda. Na base dois, ao se dividir um número por dois, basta levar a vírgula para a esquerda.
Assim, para se determinar o segundo algarismo, do número em binário, basta lembrar que ele é a parte inteira do número original dividido por dois, abandonado o resto.
Vamos converter 25 de decimal para binário.
Parte Fracionária do Número
A conversão da parte fracionária do número será feita, algarismo a algarismo, da esquerda para a direita, baseada no fato de que se o número é maior ou igual a 0,5 , em binário aparece 0,1, isto é, o correspondente a 0,5 decimal.
Assim, 0,6 será 0,1_ _ ..., ao passo que 0,4 será 0,0_ _ ...
Tendo isso como base, basta multiplicar o número por dois e verificar se o resultado é maior ou igual a 1. Se for, coloca-se 1 na correspondente casa fracionária, se 0 coloca-se 0 na posição. Em qualquer dos dois casos, o processo continua, lembrando-se, ao se multiplicar o número por dois, a vírgula move-se para a direita e, a partir desse ponto, estamos representando, na casa à direita, a parte decimal do número multiplicado por dois.
Vamos ao exemplo, representando, em binário, o número 0,625.
0,625 x 2 = 1,25 , logo a primeira casa fracionária é 1.
Resta representar o 0,25 que restou ao se retirar o 1 já representado.
0,25 x 2 = 0,5 , logo a segunda casa é 0.
Falta representar o 0,5 .
0,5 x 2 = 1 , logo a terceira casa é 1.
0,62510 = 0,1012
Quando o número tiver parte inteira e parte fracionária, podemos calcular, cada uma, separadamente.
Tentando representar 0,8, verifica-se que é uma dízima.
0,8 = 0,110011001100....
Da mesma forma, vê-se que 5,8 = 101,11001100... , também uma dízima.
11,6 = 1011,10011001100... o que era óbvio, bastaria deslocar a vírgula uma casa para a direita, pois 11,6 = 2 x 5,8 .
Como inicialmente estamos aprendendo a programar em C, esse programa abaixo converte um número Decimal para Binário, dê uma olhada:
- #include <stdio.h>
- int main(){
- int n;
- scanf("%d",&n);
- int v[32];
- int i;
- for(i=0; i<32; i++){
- v[i]=-1;
- }
- int index = 0;
- while(n>0){
- v[index]=n%2;
- index++;
- n=n/2;
- }
- int j;
- for(j=index-1;j>=0;j--){
- printf("%d", v[j]);
- }
- printf("\n");
- return 0;
- }
2 comentários:
como poço fazer um programa dividir a parte inteira da ffracionaria
Esse programa esta usando a função itoa?
Postar um comentário