C++实现进制转换

C++实现进制转换

十进制与二进制之间的转换方法,其他进制转换和其思路一致,只需更改几个参数

首先介绍十进制变为二进制的转换方法
常用方法:用2整除的方式。
用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。

注1:当一个整数除另一个整数得到整数商而没有余数时,叫做整除。如2除6得3,就说2能整除6或6能被2整除。
注2:除以是被除数在前,除数在后;除是除数在前,被除数在后。如32÷8=4可描述为:8除32等于4,或者32除以8等于4。
以十进制100转换为二进制为例:
100/2=50余0;50/2=25余0;25/2=12余1;12/2=6余0;6/2=3余0;3/2=1余1。以此排列十进制的100转换成二进制是:1100100。计算结果如下:
在这里插入图片描述

#include<iostream>
using namespace std;
int a[32]={0};//固定字长为32位,其余位置用0填充 
void ten_into_two(int n) //对于其他 K进制数,只需要将函数中2换成K并且注意余数处理即可 
{
	int i=31;
	while(n>=1)
	{
		if(n%2==1)
			a[i--]=1;
		else
			i--;
		n=n/2;
	}	
	for(int i=0;i<32;i++)//输出十进制数n对应的二进制数  
			cout<<a[i]<<" ";
}
int main()
{
	int n;
	cin>>n;
	ten_into_two(n);

}

二进制变为十进制的转换方法
方法很简单,就是将二进制数n的第i(i>0)位上的数(0或1)乘以2的i-1次幂。

void two_into_ten(int n) //n为2进制数 
{
	int sum=0,i=1,j;//j表示二进制数n第i位的值
	while(n>0)
	{
		j=n%10;//获取第i位的值
		sum=sum+j*pow(2,i-1);
		i++;//变更下一位
		n=n/10;
	}	
	cout<<sum;
}

至于其他的十进制与K进制的转换关系,可以参考上述代码和思路,修改对应参数,即可实现。N进制与K进制的转换关系,用十进制作为桥梁即可实现。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值