进制转换

来源:互联网 发布:ic卡破解软件 编辑:程序博客网 时间:2024/05/16 11:18
#include<iostream>#include<vector>#include<iterator>#include<string>#include<cstdio>#include<bitset>using namespace std;#define dlong long long intvoid m2n(int m, char* mNum, int n, char* nNum) {        int i = 0;        char c, *p = nNum;        //这是一个考查处所,是不是能用起码乘法次数。        while (*mNum != '\0')                i = i*m + *mNum++ - '0';                //辗转取余        while (i) {                *p++ = i % n + '0';                i /= n;        }        *p-- = '\0';        //逆置余数序列        while (p > nNum) {                c = *p;                *p-- = *nNum;                *nNum++ = c;        }}void convert(dlong m,int n){ vector<int>vec;while(m){vec.push_back(m%n);m/=n;     }for(vector<int>::reverse_iterator iter=vec.rbegin();iter!=vec.rend();){cout<<*iter++;}cout<<endl;}int main(){int n;cin>>n;vector<string>vec;string str;fflush(stdin);for(int i=0;i<n;++i){getline(cin,str);vec.push_back(str);}for(int i=0;i!=vec.size();++i){bitset<sizeof(vec[i])*8>b(vec[i]);convert(b.to_ulong(),3);}return 0;}

原创粉丝点击