C++進制轉換(十進制轉二進制、八進制、隨意進制)


十進制轉二進制:

//十進制轉二進制
#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;
}











免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM