前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++进制转换(十进制转二进制、八进制、随意进制)

C++进制转换(十进制转二进制、八进制、随意进制)

作者头像
全栈程序员站长
发布2022-07-14 15:31:06
1.1K0
发布2022-07-14 15:31:06
举报

大家好,又见面了,我是全栈君。

十进制转二进制:

代码语言:javascript
复制
//十进制转二进制
#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;
}

十进制转八进制

代码语言:javascript
复制
//十进制转八进制
#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;
}

十进制转随意进制:

代码语言:javascript
复制
//十进制转换为随意进制的源代码
#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;
}

通过库函数实现八进制、十六进制输出:

代码语言:javascript
复制
#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;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118028.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档