c语言:输入16进制数转换成10进制数输出

[复制链接]
查看11 | 回复2 | 2013-4-22 00:29:48 | 显示全部楼层 |阅读模式
转换字符串的第一个字符是最高位,它的位权值是低一位的16倍.可以认为最高位前面还有一个数值为0的更高位,这样就可以建立起转换整个字符串的循环计算方法.例如要转换的16进制数字符为345,把它看成是0345,循环计算过程如下:初始化:n=0;//更高位是数值0第一次循环中计算:n=0*16+3-'0';//n被赋值为数值3第二次循环中计算:n=3*16+4-'0';//n被赋值为数值52第三次循环中计算:n=52*16+5-'0';//n被赋值为数值837需要说明,这个算式只适用于16进制字符串的每位都是数值字符,也就是0-9这10个字符.不能用于转换包括字符a-h,或字符A-H的16进制字符串.因为它们的ASCII码值与字符0的AS...
回复

使用道具 举报

千问 | 2013-4-22 00:29:48 | 显示全部楼层
每次循环n都会改变,当第一次循环进入时虽然n=0,但是第二次循环,n已经等于s[i-1]-'0'了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行