1. 程式人生 > >十進位制轉二進位制、八進位制、十六進位制(C語言指標實現)

十進位制轉二進位制、八進位制、十六進位制(C語言指標實現)

以下程式碼可以實現十進位制到二進位制、八進位制、十六進位制的任意轉換。

#include<stdio.h>
#include<string.h> 
void fun10_2_8_16(char *p,int number,int cet)
{
	if(number==0) printf("0");//如果number為零則直接輸出 
	while(number)
	{
		int temp=number%cet;
		if(temp>9) {
			*p=temp+55;//把大於9的數轉化成A,B,C... 
		}else{
			*p=temp+48;//把小於10的數轉化成0,1,2,3... 
		} 
		number=number/cet;
		p++;
	}
	*p='\0';//字串後以\0結尾 
}
int main()
{
	char arr[N];
	int number,cet;
	scanf("%d%d",&number,&cet);//輸入要轉化的十進位制數和進位制 
	fun10_2_8_16(arr,number,cet);
	for(int i=strlen(arr);i>0;i--)//逆向輸出 
	printf("%c",arr[i-1]);
	return 0;	
}