zoukankan      html  css  js  c++  java
  • 任意进制转换为十进制

    算法设计

    对于任意进制要区分是否大于10进制
    当大于10进制时我们的 十进制之中的10 可以表示位 A ,11:B...
    所以我们需要进行特殊处理而不能与十进制以下的转换混合操作。
    在编写代码一定要注意尽量减少循环次数,每一次循环都会延长你的计算机运行该程序的时间.
    以下个人思想所实现的代码,供大家参考,如有疑问请及时提出。

    采用了C++中的输入输出与C语言没什么很大的差距,大家可以自行百度进行查阅。如果有需要测试可以百度在线进制转换器进行转换测试代码.欢迎大家提出问题!

    #include <iostream>
    #include <algorithm>
    using namespace std;
    //输入一个任意进制的数转换为10进制
    //当d低于十进制
    int func(int x, int d)
    {
    	int ans = 0,index = 1;
    	while (x)
    	{
    		int c = x % 10;
    		ans += c * index;
    		x = x / 10;
    		index *= d;
    	}
    	return ans;
    }
    //当大于10进制时候
    int transfer(string s, int d)
    {
    	int sum = 0,k = 1; //初始化
    	for (int i = s.size() - 1; i >= 0; i--)
    	{
    		if (s[i] >= 'A' && s[i] <= 'Z')
    		{
    			sum += (s[i] - 'A' + 1 + 9)*k;
    		}
    		else
    		{
    			sum += (s[i] - '0') * k;
    		}
    		k *= d;
    	}
    	return sum;
    }
    //测试代码
    int main()
    {
    	cout << transfer("BB1", 16) << endl;
    	cout << transfer("A22", 32) << endl;
    	cout << func(123, 8) << endl;
    	cout << func(1001, 2) << endl;
    	system("pause");
    	return 0;
    }
    

    如果大家有什么疑问的话可以加qq向我提出哦,欢迎各位大佬指出问题。
    如果你觉得对你有所帮助的话就给我点个赞,点燃我下次写文章的动力吧 ^_^ !

  • 相关阅读:
    WPF之窗体说明
    WPF之基本概念
    WPF学习之button
    写一本”错误百出”的C语言学习教程(一)
    JSP的工作原理-还是没理解--多看点再写。
    Java将中文转换成unicode字符。
    postgres 导出数据到csv 文件
    python小试身手-文件重命名,文件复制和压缩(.gz)
    python 环境安装 mark下。
    JRE,JVM,JDK的区别---粘自百度知道、
  • 原文地址:https://www.cnblogs.com/wlw-x/p/11736583.html
Copyright © 2011-2022 走看看