永发信息网

6进制转化成10进制的c语言程序

答案:1  悬赏:50  手机版
解决时间 2021-04-28 05:51
  • 提问者网友:太高姿态
  • 2021-04-28 02:44
%代表0    )代表1    ~代表2     @ 代表3   ?代表4   \ 代表5   $ 代表 -1
他们的系统是以6为基础的,每位上的数值达到6就向该位的左边进位,如同随后的例子:
)@%表示1*6^2+3*6+0=36+18+0=54
?$~~ 表示4*6^3+(-1)*6^2+2*6+2=864-36+12+2=842
$~~表示(-1)*6^2+2*6+2=-36+12+2=-22
请帮我画个程序流程图,写下程序。谢谢了!
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-04-28 03:34

程序给你,很简单,有注释,流程图实在懒得画了……


#include <iostream>
#include <string>
#include <math.h>


using namespace std;


//用于找到符号对应的数字
int ConverFromSymbol(char symbol)
{
 //符号表
 string symbolList = "$%)~@?\\";
 //输入符号对应符号表的下标-1就是对应的数字了。
 return symbolList.find_first_of(symbol) - 1;
}


int main(int argc, _TCHAR* argv[])
{
 string input;
 int length = 0;
 int output = 0;


 //输入6进制串
 cin >> input;
 //获取串长度
 length = input.length();



 //这里i代表位,从最低位开始,j代表n次方,从0开始。
 for(int i = length - 1, j = 0; i >= 0; i--, j++)
 {
  //输出加等数字*6的n次方
  output += ConverFromSymbol(input[i]) * pow(6.0, j);
 }


 //输出
 cout << output;
 //暂停
 system("pause");
 return 0;
}


环境是vs

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯