#include<stdio.h>
#include<math.h>
int SixteenToTen(int n)
{
int num=0;
int i=0;
while(n!=0)
{
num+=n%16*pow(16.0,i);//计算个位,抛掉个位
n/=16;
i++;
}
return num;
}
void TenToSixteen1(int n)//用数组的方法
{
int arr[100];
int count=0;
while(n!=0)
{
arr[count]=n%16;
n/=16;
count++;
}
printf("10->16进制为:");
for(int i=count-1;i>=0;i--)
{
printf("%x",arr[i]);
}
printf("\n");
}
void TenToSixteen2(int n)//用递归的算法
{
int tmp=n%16;
n/=16;
if (n!=0)
TenToSixteen2(n);
printf("%x",tmp);
}
int main()
{
int n1=0x1234;
int n2=1234;
printf("16->10进制为:%d\n",SixteenToTen(n1));
TenToSixteen1(n2);
printf("10->16进制为:");
TenToSixteen2(n2);
printf("\n");
printf("10->16进制为:%x\n",n2);//直接输出
printf("16->10进制为:%d\n",n1);//直接输出
return 0;
}
进制的转换(递归的算法求解)
最新推荐文章于 2024-08-14 07:21:13 发布