请教一个c++问题:value+=static_cast<int>(power(2,i));value+=static_cast<int>(power(2,i));这句不明白
RT全部代码:#include<iostream>usingnamespacestd;doublepower(doublex,intn){doubleval=1.0;wh...
RT
全部代码:
#include <iostream>
using namespace std;
double power(double x,int n)
{
double val=1.0;
while (n>=0)
{
val*=x;
n--;
}
return val;
}
int main()
{
int value=0;
cout<<"输入一个八位二进制数:";
for (int i=7;i>=0;i--)
{
char ch;
cin>>ch;
if(ch=='1')
value+=static_cast<int>(power(2,i));
}
cout<<"对应的十进制的数值为:"<<value<<endl;
return 0;
} 展开
全部代码:
#include <iostream>
using namespace std;
double power(double x,int n)
{
double val=1.0;
while (n>=0)
{
val*=x;
n--;
}
return val;
}
int main()
{
int value=0;
cout<<"输入一个八位二进制数:";
for (int i=7;i>=0;i--)
{
char ch;
cin>>ch;
if(ch=='1')
value+=static_cast<int>(power(2,i));
}
cout<<"对应的十进制的数值为:"<<value<<endl;
return 0;
} 展开
3个回答
展开全部
static_cast<int>(power(2,i))相当于(int)(power(2.i); 就是把power(2,i)的结果强制转换为int类型
展开全部
value+=static_cast<int>(power(2,i))
2的i次方结果为double类型,转换为int类型,然后累加到value上。
static_cast<int>将数据转换为int类型。
前面那一段代码是定义了一个函数(x的n次方)即power函数
2的i次方结果为double类型,转换为int类型,然后累加到value上。
static_cast<int>将数据转换为int类型。
前面那一段代码是定义了一个函数(x的n次方)即power函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赞成1楼的回答。
static_cast < type-id > ( expression )
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
static_cast < type-id > ( expression )
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询