Zamienianie ułamka na liczbę binarną

0

Czesc,

Chciałbym zamienić ułamek w systemie dziesiętnym na liczbę binarną, jednak nie wiem jak to zrobić. Na 5 str. tego PDFu:

http://bit.ly/jZ5aef

jest napisane, żeby: "Record the "carry" across the decimal point" - jednak nie rozumiem o co w tym chodzi. Mógłby mi ktoś to wytłumaczyć ?

1
main(){
	double d=1/10.0; 

	double b=1.0/2.0;
	printf("%f  =",d); putchar('0'); putchar('.');
	while(d!=0) {
		if(d>=b){
			putchar('1');
			d-=b;
		} else 
			putchar('0');
		b/=2;
	}
	return 0;
} 
0

Dzięki, już wymyśliłem bardziej uniwersalny kod na systemy liczbowe < 10 ;)

void foo(float fraction, const int& system)
{
    int digit;

    fraction -= static_cast<int>(fraction);

    cout << ".";

    while(fraction != 0)
    {
        fraction *= system;
        digit = static_cast<int>(fraction);
        fraction -= digit;
        cout << digit;
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1