1. 编写一个函数,把二进制字符串转换为一个数值。例如,有如下的语句: char *pbin = "01001001"; 那么把pbin作为参数传递给该函数后,它应该返回一个int类型的值25.
#include<stdio.h> int bstr_to_dec(char * str); int main() { char s[100]; while(gets(s)) { fflush(stdin); printf("%d\n", bstr_to_dec(s)); } return 0; } int bstr_to_dec( char * str) { int val = 0; while (*str != '\0') { val = 2 * val + (*str++ - '0'); } return val; }
//使用移位运算符 #include<stdio.h> #define LEN 100 int bstr_to_dec(char *str); int main() { char s[LEN] ; while(gets(s)) { printf("%d\n", bstr_to_dec(s)); } return 0; } int bstr_to_dec( char *str) { int val = 0; while(*str != '\0') { val = (val <<1) + (*str- '0'); str++; } return val; }