【c语言典例一】十进制的数转化为二进制和八进制

 首先,介绍十进制转二进制的方法:

十进制整数转换为二进制整数十进制整数转换为二进制整数采用”除2取余,逆序排列”法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

所以,十进制转为二进制的代码如下:

#include<stdio.h>
void main()
{
	int x,m,n,i;
	int a[16]={0};//定义数组并赋值
	printf("请输入一个十进制的数:");
	scanf("%d",&m);//
	printf("将%d转化为二进制:\n",m);
	for(i=0;i<16;i++)//对i循环16次
	{
		x=m%2;//m对2取余得到的值赋值给x
		n=m/2;//m整除2的值赋值给n
		m=n;//n的值再赋值给m以进行下一轮
		a[i]=x;//将取余的值赋给数组a
	}
	for( i=15;i>=0;i--)//让取余后的值从右往左依次输出
	{
		printf("%d",a[i]);
		if(i%4==0)//让每四个数一组依次输出,一个空格为距离
		{
			printf(" ");
		}
	}
}

 十进制的数用八进制来表示,我们可以用 八余法来写:

#include<stdio.h>
int main()
{
	int x,m,n,i;
	int a[8]={0};
	printf("请输入一个十进制的数:");
	scanf("%d",&m);
    printf("将%d转化为一个八进制:\n",m);
	for(i=0;i<8;i++)
	{
		x=m%8;
		n=m/8;
		m=n;
		a[i]=x;
	}
	for(i=0;i<8;i++)
	{
		printf("%d*8的%d次方+",a[i],i);
		//if("i%4==0");
		//{
			printf(" ");
		//}
	}
}

 得到如下结果:《【c语言典例一】十进制的数转化为二进制和八进制》

 

    原文作者:杜小帅会上班
    原文地址: https://blog.csdn.net/weixin_63102127/article/details/123763698
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞