%代表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
请帮我画个程序流程图,写下程序。谢谢了!
6进制转化成10进制的c语言程序
答案:1 悬赏:50 手机版
解决时间 2021-04-28 05:51
- 提问者网友:太高姿态
- 2021-04-28 02:44
最佳答案
- 五星知识达人网友:洒脱疯子
- 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯