#include <stdio.h>
#include <stdlib.h>
char *itoa(int num,char *str,int radix)
{
/* 索引表 */
char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned unum; /* 中间变量 */
int i=0,j,k;
/* 确定unum的值 */
if(radix==10&&num<0) /* 十进制负数 */
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num; /* 其他情况 */
/* 逆序 */
do
{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/* 转换 */
if(str[0]=='-') k=1; /* 十进制负数 */
else k=0;
char temp;
for(j=k;j<=(i-k-1)/2;j++)
{
temp=str[j];
str[j] = str[i-1+k-j];
str[i-j-1]=temp;
}
return str;
}
int main(void)
{
char a[10]="好";
char b[10]="5";
int c=strtol(b,NULL,10);
itoa(0xaa,b,10);
printf("%s\n",b);
printf("%x\n",c);
printf("%s\n",a);
printf("%x\n",*(unsigned short*)a);
return 0;
}
十六进制到二进制(整形到各种进制字符串)
最新推荐文章于 2024-02-16 10:00:45 发布