• 进制转换


     1386: 进制转换

     输入一个十进制数N,将它转换成R进制数输出。

    #include <bits/stdc++.h>
    using namespace std;
    //下标为0的是0,下标为10的是A
    string s="0123456789ABCDEF";
    int main()
    {
        int n,r;
        while(cin>>n>>r)
        {
            string c;
            //是0,直接输出
            if(!n)cout<<"0
    ";
            else
            {
                //小于0输出符号,取相反数
                if(n<0)cout<<"-",n=-n;
                //n还有数可取就执行循环
                while(n)
                {
                    //n%r为当前位(也就是变量n的最后一位),找到当前位的字符,并加到答案c上
                    c+=s[n%r];
                    //当前位已经拿到丢弃
                    n/=r;
                }
                //由于我们从最后一位到了第一位,最后需要倒过来
                reverse(c.begin(),c.end());
                cout<<c<<"
    ";
            }
        }
        return 0;
    } 

    二进制字符串转10进制

    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        string s;
        //读入要进行转换的字符串s
        cin>>s;
        //设置变量t去保存这个答案
       int t=0;
        for(int i=0;s[i];i++)
        {
            t=t*2+(s[i]-'0');
        }
        cout<<t<<"
    ";
    }

     给定变量int转换为string

    string intToString(int x)
    {
        if(x==0)return "0";
        string s;
        while(x)
        {
            s+=x%10+'0';
            x/=10;
        }
        reverse(s.begin(),s.end());
        return s;
    }

     如果n不能直接读入,而是一个大数呢

  • 相关阅读:
    java线程池笔记
    java多线程简单用法
    Java 常用工具类整理
    Linux nohup命令详解
    Java八种基本类型
    isms项目tomcat运行配置
    2017计划
    ES6 Reflect 与 Proxy
    ES6 Map与Set
    ES6 Symbol类型
  • 原文地址:https://www.cnblogs.com/BobHuang/p/12245448.html
Copyright © 2020-2023  润新知