十進制轉二進制:
//十進制轉二進制
#include<iostream>
using namespace std;
void printbinary(const unsigned int val)
{
for(int i = 16; i >= 0; i--)
{
if(val & (1 << i))
cout << "1";
else
cout << "0";
}
}
int main()
{
printbinary(1024);
return 0;
}
十進制轉八進制
//十進制轉八進制
#include <iostream>
#include <vector>
using namespace std;
int main()
{
cout<<"input a number:"<<endl;
int d;
vector<int> vec;
cin>>d;
while (d)
{
vec.push_back(d%8);
d=d/8;
}
cout<<"the result is:"<<endl;
for(vector<int>::iterator ip=vec.end()-1;ip>=vec.begin();)
{
cout<<*ip--;
}
cout<<endl;
return 0;
}
十進制轉隨意進制:
//十進制轉換為隨意進制的源代碼
#include <iostream>
using namespace std;
int main()
{
long n;
int p,c,m=0,s[100];
cout<<"輸入要轉換的數字:"<<endl;
cin>>n;
cout<<"輸入要轉換的進制:"<<endl;
cin>>p;
cout<<"("<<n<<")10="<<"(";
while (n!=0)//數制轉換,結果存入數組s[m]
{
c=n%p;
n=n/p;
m++;s[m]=c; //將余數按順序存入數組s[m]中
}
for(int k=m;k>=1;k--)//輸出轉換后的序列
{
if(s[k]>=10) //若為十六進制等則輸出相相應的字母
cout<<(char)(s[k]+55);
else //否則直接輸出數字
cout<<s[k];
}
cout<<")"<<p<<endl;
return 0;
}
通過庫函數實現八進制、十六進制輸出:
#include <iostream>
using namespace std;
int main()
{
int test=64;
cout<<"DEC:"<<test<<endl;
cout<<"OCT:"<<oct<<test<<endl;//八進制
cout<<"HEX:"<<hex<<test<<endl;//十六進制
return 0;
}
