Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <iomanip>
- #include <cmath>
- #include <math.h>
- #include <sstream>
- using namespace std;
- long double DecimalToOctal(string c);
- string HEXToBinary(string c);
- string DecimalToHEX (string c);
- string BinaryToDecimal (string c );
- string OctalToDecimal(string c);
- int main()
- {
- begin:
- int b1,b2;
- long double a;
- string binary, galutinis, result, HEX, c;
- setlocale(LC_ALL, "Lithuanian");
- cout << "Sveiki atvyke i skaiciavimo sistemu konvertoriu" << endl<<endl;
- cout<<"Iveskite konvertuojamu funkciju pagrindus"<<endl;
- cout<<"1: ";cin>>b1;
- cout<<"2: ";cin>>b2;
- if (b1==16&& b2==2)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite sesioliktaini skaiciavimo sistemos skaiciu"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas:"<<HEXToBinary(c)<<endl;
- goto begin;
- }
- if (b1==10&&b2==16)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas:"<<DecimalToHEX(c)<<endl;
- goto begin;
- }
- if (b1==2&& b2==10)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite dvejetaines skaiciavimo sistemos skaiciu"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas:"<<fixed<<BinaryToDecimal(c)<<endl;
- goto begin;
- }
- if (b1==10&& b2==2)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<HEXToBinary(DecimalToHEX(c))<<endl;
- goto begin;
- }
- if (b1==2&& b2==16)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite dvejetaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<DecimalToHEX(BinaryToDecimal(c))<<endl;
- goto begin;
- }
- if (b1==16&& b2==8)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite sesioliktaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<DecimalToOctal(BinaryToDecimal(HEXToBinary(c)))<<endl;
- goto begin;
- }
- if (b1==16&& b2==10)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite sesioliktaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<BinaryToDecimal(HEXToBinary(c))<<endl;
- goto begin;
- }
- if (b1==10&& b2==8)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas:"<<DecimalToOctal(c)<<endl;
- goto begin;
- }
- if (b1==16&& b2==8)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite sesioliktaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<DecimalToOctal(BinaryToDecimal(HEXToBinary(c)))<<endl;
- goto begin;
- }
- if (b1==8&& b2==10)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite astuntaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<OctalToDecimal(c)<<endl;
- goto begin;
- }
- if (b1==8&& b2==16)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite astuntaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<DecimalToHEX(OctalToDecimal(c))<<endl;
- goto begin;
- }
- if (b1==8&& b2==2)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite astuntaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<HEXToBinary(DecimalToHEX(OctalToDecimal(c)))<<endl;
- goto begin;
- }
- if (b1==2&& b2==8)
- {
- cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
- cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
- cin>>c;
- cout.precision(20);
- cout<<"Rezultatas: "<<DecimalToOctal(BinaryToDecimal(c))<<endl;
- goto begin;
- }
- return 0;
- }
- long double DecimalToOctal(string c)
- {
- long long intbin=0, j=0, i = 0, rem=0, octal=0, intoctal1, k=0;
- long double octal1=0, res=0, trupm=0;
- string sskaic, ssveik,strupm,sres, sbinary,sdott;
- while(c[j]!=0)
- {
- sbinary=c[j];
- ssveik=ssveik+sbinary;
- j++;
- if (sbinary==".")
- {
- sdott=sbinary;
- while(c[j]!=0)
- {
- sbinary=c[j];
- strupm=strupm+sbinary;
- j++;
- k=1;
- }
- }
- strupm=sdott+strupm;
- }
- if(k=1)
- {
- stringstream str( strupm );
- str>>trupm;
- }
- stringstream str1( ssveik );
- str1>>intbin;
- i=1;
- while (intbin!= 0)
- {
- rem =intbin%8;
- intbin /= 8;
- octal += rem * i;
- i *= 10;
- }
- i=1;
- while (trupm!=0&&i<25)
- {
- trupm=trupm*8;
- intoctal1=trupm;
- octal1+=(intoctal1)*pow(10,(-i));
- trupm=trupm-intoctal1;
- i++;
- }
- res=octal+octal1;
- return res;
- }
- string HEXToBinary(string c)
- {
- int sveik, n=0, i=0, h;
- string HEX,binary, galutinis, result;
- n=0;
- while (c[n]!=0)
- {
- HEX = c[n];
- n++;
- if (HEX=="0")
- {
- string binary="0000";
- result=binary;
- }
- if (HEX=="1")
- {
- string binary="0001";
- result=binary;
- }
- if (HEX=="2")
- {
- string binary="0010";
- result=binary;
- }
- if (HEX=="3")
- {
- string binary="0011";
- result=binary;
- }
- if (HEX=="4")
- {
- string binary="0100";
- result=binary;
- }
- if (HEX=="5")
- {
- string binary="0101";
- result=binary;
- }
- if (HEX=="6")
- {
- string binary="0110";
- result=binary;
- }
- if (HEX=="7")
- {
- string binary="0111";
- result=binary;
- }
- if (HEX=="8")
- {
- string binary="1000";
- result=binary;
- }
- if (HEX=="9")
- {
- string binary="1001";
- result=binary;
- }
- if (HEX=="A")
- {
- string binary="1010";
- result=binary;
- }
- if (HEX=="B")
- {
- string binary="1011";
- result=binary;
- }
- if (HEX=="C")
- {
- string binary="1100";
- result=binary;
- }
- if (HEX=="D")
- {
- string binary="1101";
- result=binary;
- }
- if (HEX=="E")
- {
- string binary="1110";
- result=binary;
- }
- if (HEX=="F")
- {
- string binary="1111";
- result=binary;
- }
- if (HEX==",")
- {
- string binary=".";
- result=binary;
- }
- if (HEX==".")
- {
- string binary=".";
- result=binary;
- }
- galutinis=galutinis+result;
- }
- return galutinis;
- }
- string DecimalToHEX (string c )
- {
- long double trupm, a;
- int sveik, liek, n;
- string result, binary, galutinis;
- stringstream s_str( c );
- s_str>>setprecision(20)>>a;
- sveik=a;
- trupm=a-sveik;
- while (sveik!=0)
- { liek=sveik;
- sveik=sveik/16;
- liek=liek%16;
- if (liek>=0)
- if (liek==0)
- {
- string binary="0";
- result=binary;
- }
- if (liek==1)
- {
- string binary="1";
- result=binary;
- }
- if (liek==2)
- {
- string binary="2";
- result=binary;
- }
- if (liek==3)
- {
- string binary="3";
- result=binary;
- }
- if (liek==4)
- {
- string binary="4";
- result=binary;
- }
- if (liek==5)
- {
- string binary="5";
- result=binary;
- }
- if (liek==6)
- {
- string binary="6";
- result=binary;
- }
- if (liek==7)
- {
- string binary="7";
- result=binary;
- }
- if (liek==8)
- {
- string binary="8";
- result=binary;
- }
- if (liek==9)
- {
- string binary="9";
- result=binary;
- }
- if (liek==10)
- {
- string binary="A";
- result=binary;
- }
- if (liek==11)
- {
- string binary="B";
- result=binary;
- }
- if (liek==12)
- {
- string binary="C";
- result=binary;
- }
- if (liek==13)
- {
- string binary="D";
- result=binary;
- }
- if (liek==14)
- {
- string binary="E";
- result=binary;
- }
- if (liek==15)
- {
- string binary="F";
- result=binary;
- }
- galutinis=result+galutinis;
- }
- if (trupm!=0)
- {
- string kablelis=".";
- galutinis=galutinis+kablelis;
- while (trupm!=0)
- {
- trupm=trupm*16;
- sveik=trupm;
- if (sveik==0)
- {
- binary="0";
- result=binary;
- }
- if (sveik==1)
- {
- string binary="1";
- result=binary;
- }
- if (sveik==2)
- {
- string binary="2";
- result=binary;
- }
- if (sveik==3)
- {
- string binary="3";
- result=binary;
- }
- if (sveik==4)
- {
- string binary="4";
- result=binary;
- }
- if (sveik==5)
- {
- string binary="5";
- result=binary;
- }
- if (sveik==6)
- {
- string binary="6";
- result=binary;
- }
- if (sveik==7)
- {
- string binary="7";
- result=binary;
- }
- if (sveik==8)
- {
- string binary="8";
- result=binary;
- }
- if (sveik==9)
- {
- string binary="9";
- result=binary;
- }
- if (sveik==10)
- {
- string binary="A";
- result=binary;
- }
- if (sveik==11)
- {
- string binary="B";
- result=binary;
- }
- if (sveik==12)
- {
- string binary="C";
- result=binary;
- }
- if (sveik==13)
- {
- string binary="D";
- result=binary;
- }
- if (sveik==14)
- {
- string binary="E";
- result=binary;
- }
- if (sveik==15)
- {
- string binary="F";
- result=binary;
- }
- galutinis=galutinis+result;
- trupm=trupm-sveik;
- }
- }
- return galutinis;
- }
- string BinaryToDecimal (string c )
- {
- long long intbin=1, j=0, rem=0, galutinis=0,lyginti=0, trupm=1, i=0;
- long double decimal=0, decimal1=0, res=0, trupm2=1, fracpart, intpart;
- string ssveik, sbinary, strupm, sres, ssv, st;
- while(c[j]!=0)
- {
- sbinary=c[j];
- ssveik=ssveik+sbinary;
- j++;
- if (sbinary==".")
- {
- while(c[j]!=0)
- {
- sbinary=c[j];
- strupm=strupm+sbinary;
- j++;
- }
- }
- }
- i=1;
- j=0;
- while (strupm[i]!=0)
- {
- st=strupm[j];
- stringstream s_str( st );
- trupm=0;
- s_str>>trupm;
- rem = trupm%10;
- decimal1= decimal1 + rem*pow(0.5,i);
- ++i;
- j++;
- }
- i=0;
- stringstream s_str1( ssveik );
- s_str1>>setprecision(20)>>intbin;
- //intbin=bin;
- while (intbin!=0)
- {
- rem = intbin%10;
- intbin=intbin/10;
- decimal= decimal + rem*pow(2,i);
- ++i;
- }
- cout.precision(20);
- res=decimal+decimal1;
- ostringstream ss;
- ss <<setprecision(20)<<res;
- sres=ss.str();
- return sres;
- }
- string OctalToDecimal(string c)
- {
- int decimal = 0, i = 0,j=0, rem=0, k=0, octal=0, octal1=0, inta;
- string sdecimal, ssveik, strupm, sbinary, sdott, sres;
- long double trupm=0, decimal1=0, res;
- while(c[j]!=0)
- {
- sbinary=c[j];
- ssveik=ssveik+sbinary;
- j++;
- if (sbinary==".")
- {
- while(c[j]!=0)
- {
- sbinary=c[j];
- strupm=sbinary+strupm;
- j++;
- k=1;
- }
- }
- }
- if(k=1)
- {
- stringstream str( strupm );
- str>>octal1;
- }
- stringstream str1( ssveik );
- str1>>octal;
- while (octal != 0)
- {
- rem = octal % 10;
- octal /= 10;
- decimal += rem * pow(8, i);
- ++i;
- }
- rem=0;
- i=1;
- if (k=1)
- {
- while (octal1 != 0)
- {
- rem = octal1 % 10;
- octal1 /= 10;
- decimal1 += rem * pow((0.125), i);
- ++i;
- }
- }
- res=decimal+decimal1;
- ostringstream ss;
- ss <<setprecision(20)<< res;
- sres=ss.str();
- return sres;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement