#include <iostream>
#include <vector>
#include <stack>
using namespace std;
void fconvert(long n,vector<long>&);
int main()
{
vector<long> bit; //保存转换之后的结果
fconvert(11,bit);
vector<long>::iterator it=bit.begin();
while(it!=bit.end())
{
cout<<*it;
it++;
}
cout<<endl;
}
void fconvert(long n,vector<long>& bit)
{
stack<long> tempstack;
long temp=n;
while(temp!=1) //当商是1时退出循环
{
long temp1=temp%2;
tempstack.push(temp1);
temp=temp/2;
}
tempstack.push(1); //将最后的1进栈
while(tempstack.empty()==false)
{
long n=tempstack.top();
bit.push_back(n);
tempstack.pop();
}
}
其中上面的11为10进制。可以用任意进制的数字来替换。例如0xaa表示16进制 0144表示八进制,进制之间的转换算法是一样的,都是对2取余。
任意进制转换二进制
最新推荐文章于 2023-07-24 03:36:47 发布