16进制算法
场景:10进制转换为16进制算法解决办法
10进制转换为16进制算法
请有能力的给个算法,谢谢!
------解决方案--------------------
#include <stdio.h>
char * itohs(unsigned int,char *);
int main(void)
{
char bin_str[2*sizeof(unsigned int)+1],*result;
unsigned int number;
while(scanf( "%u ",&number)==1)
{
result=itohs(number,bin_str);
printf( "%u is %s\n ",number,result);
}
return 0;
}
char * itohs(unsigned int n,char * ps)
{
int i,k;
int size=2*sizeof(unsigned int);
ps[size]= '\0 ';
for (i=size-1;i> =0;i--)
{
k=n%16;
n/=16;
if (k <10)
ps[i]= '0 '+k;
else
ps[i]= 'A '+(k-10);
}
return ps;
}
10进制转换为16进制算法
请有能力的给个算法,谢谢!
------解决方案--------------------
#include <stdio.h>
char * itohs(unsigned int,char *);
int main(void)
{
char bin_str[2*sizeof(unsigned int)+1],*result;
unsigned int number;
while(scanf( "%u ",&number)==1)
{
result=itohs(number,bin_str);
printf( "%u is %s\n ",number,result);
}
return 0;
}
char * itohs(unsigned int n,char * ps)
{
int i,k;
int size=2*sizeof(unsigned int);
ps[size]= '\0 ';
for (i=size-1;i> =0;i--)
{
k=n%16;
n/=16;
if (k <10)
ps[i]= '0 '+k;
else
ps[i]= 'A '+(k-10);
}
return ps;
}