c primer plus 第十五章课后编程1题

#include <stdio.h>
#include <string.h>
int int_values(char *);
#define SIZE 33
int main(void)
{
char * pbin;
char rjz[33];
int number=0;
printf(“请输入需要转换的二进制:(输入q退出)\n”);
//循环输入二进制转换为十进制
while(scanf("%s",rjz)==1 && rjz[0]!=‘q’)
{
pbin=rjz;
number=int_values(pbin);
printf(“二进制 %s = 十进制 %d.\n”,pbin,number);
printf(“请输入下一个需要转换的二进制:(输入q退出)\n”);

while(getchar()!='\n')
    continue;

}
return 0;
}

int int_values(char *pbin)
{
int number = 0 ;
//数组pbin[i]==’\0’ 也就是空字符 结束循环
for (int i = 0 ; pbin[i] ; i++)
{
number <<= 1 ;
number |= (pbin[i] - ‘0’);//把字符转换成二进制1或0赋值给当前number的0位

}

return number ;
}

发布了85 篇原创文章 · 获赞 1 · 访问量 1889

猜你喜欢

转载自blog.csdn.net/Tekkenwxp/article/details/103037422