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 ;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值