学到了位运算...有点晕了...
写了个把二进制字符串转换为十进制数的函数...书上答案说是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 编辑 ]









