I'm trying to convert a fractional decimal number to binary.
Let's go to the example, representing, in binary, the number 0.625.
0.625 x 2 = 1.25, so the first fractional house is 1.
It remains to represent the remaining 0.25 when removing the 1 already represented.
0.25 x 2 = 0.5, so the second house is 0.
0.5 x 2 = 1, so the third house is 1.
0.62510 = 0.1012
For the moment I've done only for integer ..
The code below converts integer to binary.
#include <stdio.h>
#include <stdlib.h>
// Função Main
int main() {
int n;
int r;
int i;
// Lê o número
printf("Digite o numero: ");
scanf("%d", &n);
// Utiliza um número de 32 bits como base para a conversão.
for(i = 31; i >= 0; i--) {
// Executa a operação shift right até a
// última posição da direita para cada bit.
r = n >> i;
// Por meio do "e" lógico ele compara se o valor
// na posição mais à direita é 1 ou 0
// e imprime na tela até reproduzir o número binário.
if(r & 1) {
printf("1");
} else {
printf("0");
}
}
printf("\n");
system("pause");
}
How do I treat the fractional part in C?