(1)アルゴリズム関数:
10進数を2〜36の基数に変換し、文字列として画面に出力します。
(2)アルゴリズムコア:
(1)文字列が逆の順序である;(2)ビット損失、ストレージ;(3)残りを取るために10進数に変換される;(4)ループ
(3)アルゴリズムの実装:
//将十进制数转成2~36任意进制的字符串
#include<stdio.h>
#include<string.h>
void StrResever(char *str)
{
/*char*p=NULL;
while(*p!='\0')
p++;*/
char tmp;
int len = strlen(str);
for(int i=0,j=len-1;i<=j;i++,j--)
{
tmp=str[i];
str[i]=str[j];
str[j]=tmp;
}
str[len] = '\0';
}
void Myitoa(char *str,int n,int radix)
{
char *chars="0123456789abcdefghijklmnopqrstuvwxyz";
int i=0;
while(n!=0)
{
str[i++]=chars[n%radix];
n/=radix;
}
StrResever(str);
}
int main()
{
char str[200]=" ";
Myitoa(str,16,16);
printf("%s\n",str);
Myitoa(str,123,10);
printf("%s\n",str);
Myitoa(str,67,16);
printf("%s\n",str);
Myitoa(str,18,20);
printf("%s\n",str);
Myitoa(str,123,20);
printf("%s\n",str);
Myitoa(str,18,16);
printf("%s\n",str);
//char str[]=" ";
//printf("%d\n",Myitoa(,10,16));
return 0;
}
(4)運用実績:
お役に立てれば幸いです。
欠点について教えてください!