Witam, mam do zrobienia uniwersalną funkcję do przeliczania liczby na system od dwójkowego do szesnastkowego. Liczba jest już wiadoma w programie. Użytkownik podaje w jakim systemie(czyli zarazem przez jaką liczbę chce dzielić liczbę) będzie chciał przeliczyć liczbę. Na lekcji miałam system dwójkowy. Przerobiłam program, ale nie wiem jak zmienić funkcję, żeby była uniwersalna. Też nie wiem jak napisać, że dzielnik = system.
Z góry dziękuję za pomoc!
#include <bits/stdc++.h>
using namespace std;
int dzielnik;
string czCalkowita(int c, int system) // calkowita
{
string s;
while(c > 0)
{
if(c % dzielnik == 1)s = '1' + s;
else s = '0' + s;
c/= dzielnik;
}
return s;
}
string czUlamkowa(double d, int system)
{
string s;
int f = 0;
for(int i = 0; i < 20; i++)
{
d*=dzielnik;
f = floor(d);
if(f == 0) s+= '0';
else s+= '1';
d= d-f;
if(d < 0.0000000001) break;
}
return s;
}
string liczba_binarnie(double d,int system)
{
int c = (int ) d;
d = d - c;
string s;
s = czCalkowita(c, system);
s+= ", ";
s+= czUlamkowa(d, system);
return s;
}
int main()
{
double d = 2345.3465;
cin >> dzielnik;
if(dzielnik < 16)
{
cout << liczba_binarnie(d, 13) << endl;
}
else return 0;
return 0;
}