请高手指我这段代码那里错了???
下面代码是要把二进制10111转换为十进制:
char * str = "10111";
int n = strlen(str);
int result;
for(int i = 0;i < n; i ++)
{
result += int(str[i]) * pow(2,n - i);
}
cout<<result;
运行后怎么显示结果为:
-858990438
下面代码是要把二进制10111转换为十进制:
char * str = "10111";
int n = strlen(str);
int result;
for(int i = 0;i < n; i ++)
{
result += int(str[i]) * pow(2,n - i);
}
cout<<result;
运行后怎么显示结果为:
-858990438
int result(0);//要初始化
int result = 0;
int result(0);
static int result;
都可以
mark
初始化也不行啊
编译没问题,但结果不正确!!!
没有给result初值
result = 0;
result没初始化。
int(str[i]) 的到的是49,
1的ASCII值 ,
不好意思,原来我以前贴的一段程序,
随便写上去的,
没调,
误导兄弟了
#include<iostream>
#include <valarray>
using namespace std;
int main(){
char * str = "10111";
int n = strlen(str);
int result = 0; //给个初值
for(int i = 0;i < n; i ++)
{
result += (str[i]-48) * pow(2,n - i-1); //这里改一下,
}
cout<<result;
system("pause");
}
同意 qhfu(崩溃)