Zamiana na system dwójkowy oraz szesnastkowy

0

Treść zadania które otrzymałem.(Język c)
Obliczyć wartość funkcji jednoargumentowej. Z wartości y wybieramy dwie (trzy) cyfry i wyświetlamy wynik w systemach dwójkowym i szesnastkowym. Dla zadań 1-10 wybieramy cyfry 1,2; 2,3; … 10,11. Dla zadań 11-20 wybieramy cyfry 1,3; 2,4; 3,5; … 10,12. Dla zadań 21-30 wybieramy cyfry 1,4; 2,5; 3,6; … 10,13. Dla zadań 31-40 wybieramy cyfry 1,5; 2,6; 3,7; … 10,14. Dla zadań 41-50 wybieramy cyfry 1,6; 2,7; 3,8; … 10,15. Dla zadań 51-60 wybieramy cyfry 1,2,3; 2,3,4; … 10,11,12;

Otrzymałem przykład nr.15. Prezentuje się on tak: y=tg2(x+5.2) , x=2.1

póki co napisałem tyle programu

#include <math.h>
#include <stdio.h>
#include <conio.h>

double x=2.1,y;

int main(int argc, char *argv[]) 
{
    y= (pow(tan(x+5.2), 2)); 
 	printf("x=%f y=%f", x , y);
	
	return 0;
} 

Teraz moim zadaniem jest zamienić wynik który wychodzi czyli coś ok 2,61.. na liczbę w systemie dwójkowym. bodajże tam do 4 miejsc po przecinku. Mam wykładowcę z Ukrainy i nie bardzo rozumiem co tłumaczy, ale mówił żeby doprowadzić to do posaci z 2.61.. na 0.261.. czyli jest jest jakas jednosc to podzielic przez 10. Tak żeby było 0 i jakies liczby po przecinku. Następnie mamy mnożyc razy dziesięć i zapisywać cyfrę jedności w tablicy tak aż zapiszemy tam te 4 liczby. Nie ogarniam tego. Jeśli ktoś by mógł mi pomóc bede wdzięczny. Mam zamienić na system dwójkowy oraz szesnastkowy.

0

Zamiana na liczby binarne w formacie xx.zz czy lecimy IEEE floating point?
Bo o ile pierwszy faktycznie wymaga przeliczenia i pisania funkcji, która obliczy część po przecinku (np. sposób ładnie pokazany http://eduinf.waw.pl/inf/alg/006_bin/0011.php), to w drugim można sobie zrobić unię trzymającą i inta i floata (czy tam rzutować je) i po prostu zamienić wartość inta na reprezentację binarną.

0

Post poprzednika jak i podany przez niego link w zasadzie rozwiązują sprawę, tylko dodam że z zadania wynika że powinieneś otrzymać liczbę 10,1001 gdzie 10 reprezentuje 2 a 0,1001 powinno reprezentować 0,6132, niestety nie do końca reprezentuje bo błąd zaokrąglenia jest duży i po przeliczeniu wyjdzie ci liczba około 0,5625. Dokładniejszy wynik prezentuje liczba 10,100111001, no ale skoro mieliście wyznaczyć tylko do 4 miejsc po przecinku...

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