[英]Why is my C program not giving correct output?
这是我将二进制转换为十进制的 C 程序。 但它不起作用我不知道为什么? 请帮我解决这个问题。 帮我找出错误。
#include<stdio.h>
#include<conio.h>
int main(){
char bin[1000];
int dec=0;
int k=1;
printf("Enter bin : ");
scanf("%s",bin );
int length=0;
while(bin[length]!='\0'){
length++;
}
for(int i=length-1 ; i>=0 ; i--){
dec=dec+bin[i]*k ;
k=k*2 ;
}
printf("%d",dec);
getch();
return 0;
}
您可能需要将输入的 ASCII '0' 和 '1' 转换为整数 0 和 1,因为 '1' 实际上是 49,而 '0' 是 48(参见 ASCII 表):
dec=dec+(bin[i]-'0')*k ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.