|
| » 首页 » 电脑_数码 » 编程 » 谁能帮我具体解释一下这段程序。这段程序是为了实现将二... |
谁能帮我具体解释一下这段程序。这段程序是为了实现将二... |
|
int i; long decimal=0; char*pointer; for(i=0,pointer=string+point;i<length;i++,pointer++) if(*pointer-'0') {decimal +=(long)pow(2,i); } return (decimal); } |
![]() |
|
|
十六进制中,ABCDEF分别表示10 11 12 13 14 15 个位+十位×16+百位×256…… 即:16的0,1,2……次方 例如5BB 11+11×16+5×256=1467 十进制转换十六进制 拿 十进制数 除以十六就可以了 10转16: 100以内一点的10转16心算比较快。10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数。 十进制转换二进制算法 比如1994 转换成二进制如下! 1994/2=997-----------0 997/2=498------------1 498/2=249------------0 249/2=124------------1 124/2=62-------------0 62/2 =31-------------0 31/2 =15-------------1 15/2 =7--------------1 7/2 =3--------------1 3/2 =1--------------1 1/2=0 --------------1 除到零为止.书上有说:除到零.最后一位剩1 这样加起来就是1994了. 参考资料:谭浩强(师范院校教科书) 二进制转换十进制 例如:110110101 转为10进制的方法是1+0*2+1*4+0*8+1*16+1*32+0*64+1*128+1*256 就是依次往上递增2的次方 十六进制中,ABCDEF分别表示10 11 12 13 14 15 个位+十位×16+百位×256…… 即:16的0,1,2……次方 例如5BB 11+11×16+5×256=1467 十进制转换十六进制 拿 十进制数 除以十六就可以了 10转16: 100以内一点的10转16心算比较快。10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数。 十进制转换二进制算法 比如1994 转换成二进制如下! 1994/2=997-----------0 997/2=498------------1 498/2=249------------0 249/2=124------------1 124/2=62-------------0 62/2 =31-------------0 31/2 =15-------------1 15/2 =7--------------1 7/2 =3--------------1 3/2 =1--------------1 1/2=0 --------------1 除到零为止.书上有说:除到零.最后一位剩1 这样加起来就是1994了. 参考资料:谭浩强(师范院校教科书) 二进制转换十进制 例如:110110101 转为10进制的方法是1+0*2+1*4+0*8+1*16+1*32+0*64+1*128+1*256 就是依次往上递增2的次方 |
| 《谁能帮我具体解释一下这段程序。这段程序是为了实现将二...》答案收集时间:2008-06-14 14:43:35 |