本帖最后由 天ya~_琼楼 于 2013-11-17 21:44 编辑
十六进制转十进制与二进制转十进制方法一样,即: Hn×16^n+Hn-1×16^(n-1)+……+H0×16^0因此楼主前边的代码我就不多解释了,就是从后向前取字符,将16进制的单个字符转换成十进制,例如最先娶到f,转换为15,对应H0,b转换成十进制11,对应H1,……1就对应十进制的1.
所以结果是sum=1*16^4+3*16^3+10*16^2+11*16^1+15*16^0
上式中16的0、1、2、3、4次幂就是楼主代码中对应的i,1、3、10、11、15对应结果计算中的n。
对比楼主的公式sum += n * (1<<(4*i))=n*(1*2^(4i))=n*16^i;
这就是最上边的公式了。
简单一句话,wei什么用4来乘,因为1<<4,就是16.
|