【C语言】进制转换的两个例子

例子1:

#include<stdio.h>
#include<math.h>

int main(){
	int Number , a , b , i = 0 , Bs = 10 , key;//Bs Binary system 
	int t[20];
	
	printf("输入一个十进制整数!\n");
	scanf("%d",&Number);
	printf("十进制数:%d\n",Number);
	
	/*二进制*/
	Bs = 2;
	a = Number;
	b = 0;
	while(a/Bs != 0){
		b += pow(10,i) * (a%Bs);
		i ++;
		a /= Bs;
	}
	b += pow(10,i) * (a%Bs);
	printf("转化成二进制数:%d\n",b);
	i = 0;

	/*八进制*/
	Bs = 8;
	a = Number;
	b = 0;
	while(a/Bs != 0){
		b += pow(10,i) * (a%Bs);
		i ++;
		a /= Bs;
	}
	b += pow(10,i) * (a%Bs);
	printf("转化成八进制数:%d\n",b);
	i = 0;

	/*十六进制*/
	Bs = 16;
	a = Number;
	b = 0;
	printf("转化成十六进制数:");
	int j = 0;
	while(a/Bs != 0){
		key = a%Bs;
		if(key < 10){
			t[i] = key + 48;
		} else {
			t[i] = key + 87;
		}
		i ++;
		j ++;
		a /= Bs;
	}
	t[i] = a%Bs + 48;
	for(i = j ; i>= 0 ; i--){
		printf("%c",t[i]);
	}
	printf("\n"); 
	i = 0;
	
	return 0;
} 

例子2:

#include<stdio.h> 
char a[1000];
void BaseConversion(int n,int x){
	int y=0,k;
    char z='A';
    while (n!=0)
    {   
        y++;
        a[y]=n%x;
        n=n/x;
        if (a[y]>9) a[y]=z+(a[y]-10); 
        else a[y]=a[y]+'0';
    }
    printf("%d进制数:",x);
    for (int i=y;i>0;i--)
    	printf ("%c",a[i]);
    printf("\n");
}
int main()
{
	int number;
	printf("输入一个十进制数!\n");
	scanf("%d",&number);
	BaseConversion(number,2);
	BaseConversion(number,8);
	BaseConversion(number,16);
	return 0;
}
发布了18 篇原创文章 · 获赞 0 · 访问量 339

猜你喜欢

转载自blog.csdn.net/qq_43750882/article/details/105691327