如何将字符串转换为16进制数值
有1个数组chara[2]a[0]='e',a[1]='9',,假记为a[2]="e9"十六进制数e9等于十进制数233如何将这个数组转换为十六进制e9或者十进制数233...
有1个数组 char a[2]
a[0]='e',a[1]='9', ,假记为a[2] = "e9"
十六进制数 e9 等于十进制数 233
如何将这个数组转换为十六进制 e9 或者十进制数 233
我自己后来想出来了:
if(z[0]>='0' && z[0] <='9')
x = (int)z[0] - 48;
else
if(z[0] >='A' && z[0] <= 'Z')
x=(int)z[0] - 55;
else
{
perror("http address string wrong");
exit(0);
}
printf("x====>%d ",x);
if(z[1]>='0' && z[1] <='9')
y = (int)z[1] - 48;
else
if(z[1] >='A' && z[1] <= 'Z')
y=(int)z[1] - 55;
else
{
perror("http address string wrong");
exit(0);
}
大概就只这样 展开
a[0]='e',a[1]='9', ,假记为a[2] = "e9"
十六进制数 e9 等于十进制数 233
如何将这个数组转换为十六进制 e9 或者十进制数 233
我自己后来想出来了:
if(z[0]>='0' && z[0] <='9')
x = (int)z[0] - 48;
else
if(z[0] >='A' && z[0] <= 'Z')
x=(int)z[0] - 55;
else
{
perror("http address string wrong");
exit(0);
}
printf("x====>%d ",x);
if(z[1]>='0' && z[1] <='9')
y = (int)z[1] - 48;
else
if(z[1] >='A' && z[1] <= 'Z')
y=(int)z[1] - 55;
else
{
perror("http address string wrong");
exit(0);
}
大概就只这样 展开
3个回答
展开全部
举个例子:233转变成e9
233/16 = 14 余数为9
14的十六进制为e,9的十六进制还是9,所以转换结果为e9.
也就是说:如果相除的结果小于1,则结果是多少就直接转换
如果结果在1和15之间,则转换后的结果如本例所示.
依此类推.
再举个例子:143转变成e9
143/16 = 8 余数为15
8的十六进制还是8,15的十六进制是f,所以转换结果为8f.
233/16 = 14 余数为9
14的十六进制为e,9的十六进制还是9,所以转换结果为e9.
也就是说:如果相除的结果小于1,则结果是多少就直接转换
如果结果在1和15之间,则转换后的结果如本例所示.
依此类推.
再举个例子:143转变成e9
143/16 = 8 余数为15
8的十六进制还是8,15的十六进制是f,所以转换结果为8f.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你想翻译多长的十六进制,太长的方法是比较复杂的。短的(8位及以下),我可以给你一点建议,每个十六进制位控制4个bit,你可以从低到高,赋值给一个int型的数,结果就出来了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int char2int(char a[2])
{
int a,b;
if (a[0]>='0' && a[0]<='9') a=a[0]-'0';
else if(a[0]>='a' && a[0]<='f')) a=a[0]-'a'+10;
else if(a[0]>='A' && a[0]<='F')) a=a[0]-'A'+10;
else return -1;
if (a[1]>='0' && a[1]<='9') b=a[1]-'0';
else if(a[1]>='a' && a[1]<='f')) b=a[1]-'a'+10;
else if(a[1]>='A' && a[1]<='F')) b=a[1]-'A'+10;
else return -1;
return a*16+b;
}
{
int a,b;
if (a[0]>='0' && a[0]<='9') a=a[0]-'0';
else if(a[0]>='a' && a[0]<='f')) a=a[0]-'a'+10;
else if(a[0]>='A' && a[0]<='F')) a=a[0]-'A'+10;
else return -1;
if (a[1]>='0' && a[1]<='9') b=a[1]-'0';
else if(a[1]>='a' && a[1]<='f')) b=a[1]-'a'+10;
else if(a[1]>='A' && a[1]<='F')) b=a[1]-'A'+10;
else return -1;
return a*16+b;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |