学到了位运算...有点晕了...
写了个把二进制字符串转换为十进制数的函数...书上答案说是25...我怎么算也算不出来25啊.基本确定书上答案是错的了..
但还是不放心...求指点,我这么做对不对?
用位运算的话,这程序有没有更好的方法
程序代码:
#include <stdio.h> #include <string.h> #include <math.h> int toint(char *); int main(void) { char pbin[] = "01001001"; int sum = toint(pbin); printf("%d\n", sum); return 0; } int toint(char *bin) { int sum = 0; int tmp; int len = strlen(bin) - 1; while(len >= 0) { tmp = *bin - '0'; tmp <<= len--; sum += tmp; bin++; //sum += (*bin++ - '0') << len--; 这样写太不直观...我分开写了 } return sum; }
[ 本帖最后由 Ryker 于 2013-5-18 17:29 编辑 ]