czy ktoś był by mi wstanie wytłumaczyć każdą linijkę kodu tak dokładnie co ona robi ?
ma to przeliczać dowolny kod na taki jaki chcemy
#include<iostream>
#include<string>
using namespace std;
long pot(int p, int w)
{
long wynik=1;
for(int i=0; i<w; i++)
wynik=wynik*p;
return wynik;
}
int z2na10(string L)
{
int suma=0;
for(int i=0;i<L.size();i++)
suma=suma+(L[L.size()-1-i]-48)*pot(2, i);
return suma;
}
int zDOWna10(string L,int p)
{
int suma=0;
for(int i=0;i<L.size();i++)
if((L[L.size()-1-i]-55)>9)
suma=suma+(L[L.size()-1-i]-55)*pot(p, i);
else
suma=suma+(L[L.size()-1-i]-48)*pot(p, i);
return suma;
}
string z10na2(int L)
{
int R;
string wynik="";
while(L!=0)
{
R=L%2;
L=L/2;
wynik=char(R+48)+wynik;
}
return wynik;
}
string z10naDOW(int L, int p)
{
int R;
string wynik="";
while(L!=0)
{
R=L%p;
L=L/p;
wynik=char(R+48)+wynik;
}
return wynik;
}
string zDOWnaDOW(int p_1, string licz,int p_2)
{
return z10naDOW(zDOWna10(licz,p_1),p_2);
}
string z2na4(string L)
{
string pom, pom5;
int pom3, pom4;
while(L.size()%2!=0)
L='0'+L;
for(int i=1; i<L.size();i=i+2)
{
pom3=L[L.size()-i]*1;
pom4=L[L.size()-1-i]*2;
pom=pom4+pom3-(48*2);
pom5=pom+pom5;
}
return pom5;
}
string z2na8(string L)
{
string pom, pom5;
int pom3, pom4, pom6;
while(L.size()%3!=0)
L='0'+L;
for(int i=1; i<L.size();i=i+3)
{
pom3=L[L.size()-i]*1;
pom4=L[L.size()-1-i]*2;
pom6=L[L.size()-2-i]*4;
pom=pom4+pom3+pom6-(48*6);
pom5=pom+pom5;
}
return pom5;
}
string z2na16(string L)
{
string pom, pom5;
int pom3, pom4, pom6, pom7;
while(L.size()%4!=0)
L='0'+L;
for(int i=1; i<L.size();i=i+4)
{
pom3=L[L.size()-i]*1;
pom4=L[L.size()-1-i]*2;
pom6=L[L.size()-2-i]*4;
pom7=L[L.size()-3-i]*8;
if(pom4+pom3+pom6+pom7-(48*14)<58)
pom=pom4+pom3+pom6+pom7-(48*14);
else
pom=pom4+pom3+pom6+pom7-(48*14-7);
pom5=pom+pom5;
}
return pom5;
}
//---------------------------------------------------------------------------------------
int main ()
{
string y;
//int x, z;
cin >> y;
//cin >> n;
cout << z2na16(y) << endl;
}