zhy20161209_Caculator7

来源:互联网 发布:ios 开发判断网络 编辑:程序博客网 时间:2024/04/28 23:01
#include <iostream>#include <string>#include <cmath>using namespace std;const int SEVEN = 7;/*将一个整型数字转化成字符型数字,例如 8->'8',12->'c'*/char numToChar(char num){/*num是0到9之间的数字*/if(num<=9&&num>=0){num+=48;}return num;}/*将一个字符型数字转化成整型数字,例如 '8'->8,'c'->12*/int charToNum(char &num){/*num是0到9之间的字符型数字*/if(num<='9'&&num>='0'){num-=48;}return num;}string reverse(string &s)    /*字符串逆序*/{    int i;    string temp="";    for(i=s.length()-1;i>=0;i--)        temp+=s.at(i);    return temp;}/*将任意进制整数转化为十进制整数,返回转化后的十进制整数,num为任意进制整数,binary为该整数的进制*/int anyBinaryToDecimal(string num,int binary){int len=num.size();int decimal_num=0;for(int i=0;i<len;i++){decimal_num+=charToNum(num[i])*pow(SEVEN,len-i-1);}return decimal_num;}/*将十进制转化为任意进制,decimal为十进制整数,binary为需要转化的进制*/string decimalToAnyBinary(int decimal,int binary){int original = decimal;string result = "";//保存x进制数char temp;decimal = abs(decimal);while(decimal > 0){temp=decimal%SEVEN;result+=numToChar(temp);decimal=decimal/SEVEN;}if (original<0){result += '-';}/*输出转化后的x进制整数*/return reverse(result);}/*将输入的表达式解析出计算规则,例:"(1+2)*3" => "3 3*" */string analysisArgu(string input,string target){return "temp";}int main(){string num="7";//七进制数int decimal_num=anyBinaryToDecimal(num,7);//将七进制数转化成十进制数cout<<decimal_num<<endl;//打印转化后的十进制数    string sevenRst = decimalToAnyBinary(-1,7);//将十进制数转化成七进制数,并输出结果cout<<sevenRst<<endl;return 0;}

0 0
原创粉丝点击