请教一个c++问题:value+=static_cast<int>(power(2,i));value+=static_cast<int>(power(2,i));这句不明白

作者&投稿:禽炎 (若有异议请与网页底部的电邮联系)
c++中value+=static_cast&amp;lt;int&amp;gt;(power(2,i0);是什么意思?~

value += static_cast(power(2,i0));
power(float x,float y)
power(double x,double y)
均返回x的y次方,返回值类型分别为float和double,
你这个语句相当于将power返回的结果强制转换为int整型~

int main() {
int value=0;

cout<<"Enter an 8 bit binary number: "; //输入8位的二进制
for (int i=7;i>=0;i--) { //循环8次
char ch; //声明字符变量
cin>>ch; //将输入的8进制的每个字符赋给ch
if (ch=='1') //判断是不是为字符'1'
value+=static_cast(power(2,i)); //若是,则调用函数power,并强制转换类型
}
cout<<"Decimal Value is "<<value<<endl; //输出十进制的值
return 0;
}

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函数

赞成1楼的回答。
static_cast < type-id > ( expression )
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。


请教一个C语言的简单问题
对于第一问,等你数据输入完以后,想显示某位同学的信息的话,先顺序比对一下数组中有没有该同学的名字 for(n=0;n<=4;n++){ if(students[n].name=="你输入的名字")break;}\/\/执行完以后n就是该同学的编号。然后输出相关信息即可。但是这里还存在一个多个同学重名的问题,要注意一下。对于第2...

请教大家一个有关 & 符号的c语言问题
按位与运算。35的二进制是100011,c&c:100011 100011 --- 100011 所以结果还是35,这个35已经不同与原来的C的值了 该程序只是因为35&35结果还是35才迷惑人。换个数试试你就明白了。并不是你说的只执行前一个C,而后面的&c就不予处理。

求助一个C语言问题 为什么在VC中老是提示我 warning C4101: 'c...
警告的意思为:警告C4101:'e':未引用的局部变量 原因是局部变量的错误使用。你的 f,c,k都是在main()函数里面定义的,然而,你在使用这些变量时是在temp()函数里面,在某个函数里面定义的变量只能在此函数中使用,所以你会产生错误。解决办法为,将这些变量定义为全局变量。问题成功解决。

C语言编程中的问题
这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。 注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!! 注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!

请教:c语言的问题请教各位高手,是一个欧拉公式的转换问题,函数中两个返...
F-E+V=2。试一下用拓朴学方法证明关于多面体的面、棱、顶点数的欧拉公式。证明 :(1)把多面体(图中①)看成表面是薄橡皮的中空立体。(2)去掉多面体的一个面,就可以完全拉开铺在平面上而得到一个平面中的直线形,像图中②的样子。假设F′,E′和V′分别表示这个平面图形的(简单)多边形、...

请教几个关于C+的问题?!
问题一:1:H(1)表示1,2,3,4……H(1)。其中H(1)应该是个整数,就是取1到H(1)的所有整数。问题二:这个的优先级不是你想的那样的。而应该是(50+1):H(1)也就是说从51到H(1)。问题三:镜像操作只有C是,不仅是左右镜像,而且是上下镜像。执行下边的代码:J= imread('greens.jpg');J...

怎么用C语言确定题目:一个整数,它加上100后是一个完全平方数,再加上...
yaobin410 | 浏览4392 次 问题未开放回答 |举报 推荐于2017-12-15 09:04:39 最佳答案 你给出的答案明显就有漏的,用你的程序求解,得不到那个“ -99”,但是事实上它也是一个答案,你是用一个个列举的方法来求的,而列举的范围是你定的。如果你把i的初始值定为小于-99的整数,那么你的程序也可以得到这个...

...编写完成对学生相关信息的要求:1.定义一个结构体类型student,其中包 ...
include <stdio.h> include <stdlib.h> define STU_NUM 10 \/*宏定义学生的数量*\/ struct student \/*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*\/ { char stu_id[20]; \/*学生学号;*\/ float score[3]; \/*三门课成绩;*\/ float total; \/*总成绩;*\/ float aver; \/*...

c语言 有一个整数N,N可以分解成若干个整数之和,问如何分解能使这些数...
请编程,由键盘输入一个整数N(N<100),将N分解成若干个整数,输出这些数的乘积,且要保证M是最大的。匿名 | 浏览3652 次 |举报 我有更好的答案邀请更新 2013-07-21 最佳答案 最优化问题,尽量都分成3,不足部分就分成2。对于n < 4,可以验证其分解成几个正整数的和的乘积是小于 n 的。对于n >= 4,...

请问有哪路高手能教一下:用C编一个函数,生成N个互不相等的随机数_百度...
这个特性被有的软件利用于加密和解密。加密时,可以用某个种子数生成一个伪随机序列并对数据进行处理;解密时,再利用种子数生成一个伪随机序列并对加密数据进行还原。这样,对于不知道种子数的人要想解密就需要多费些事了。当然,这种完全相同的序列对于你来说是非常糟糕的。要解决这个问题,需要在每次...

邵阳县18914786808: 请教一个c++问题:value+=static - cast<int>(power(2,i));value+=static - cast<int>(power(2,i));这句不明白 -
漕以双黄: value+=static_cast<int>(power(2,i))2的i次方结果为double类型型,然后累加到value上.static_cast<int>将数据转换为int类型.前面那一段代码是定义了一个函数(x的n次方)即power函数

邵阳县18914786808: 一个简单的C++问题,输入一个8位二进制数,将其转换为十进制数输出. -
漕以双黄: 开始定义的i是for循环中的循环节,作为判断条件使用; cin的操作在for循环中已经进行了8次了

邵阳县18914786808: C++实现:7.下面是一个简单计算器类的定义,请完成该类的实现. class CCounter { int Value; public: CCou -
漕以双黄: #include<iostream> using namespace std; class CCounter {int Value; public:// CCounter(int number=0);void Increment(); //给原值加1void Decrement(); //给原值减1void GetValue(); //取得计算器值void Print(); //显示计算器...

邵阳县18914786808: 求解代码的意义,是C++的 int value[]={1,2,5,25}; size - t size=sizeof(value)/sizeof(*value); -
漕以双黄: sizeof(数组名),求出整个数组占的字节数 sizeof(*数组名),求数组第一个元素占的字节数(也就是单位字节) 两者相除,结果就是数组里有多少个元素,这里结果是4

邵阳县18914786808: C++大作业做一个计算器,想请教大家 -
漕以双黄: 键盘上输入的字符用string读取,然后对这个字符串逐个字符判断1. 那些是运算符号,不同的运算符调用不同的函数;2. 那些事数字,把数字提取出来赋给相应类型的变量;楼主可以试一下这个,,

邵阳县18914786808: c++初级问题,求高手帮忙解答!!!! -
漕以双黄: 1、下列程序有何问题?请仔细体会使用指针时应避免出现这个问题.(文件名:sy3-1.cpp)#include using namespace std;int main(){ int *p; int i; p= /...

邵阳县18914786808: C++写一个函数 输入一个value的数字 在x,y坐标位置显示 怎么写 -
漕以双黄: #include<stdio.h>#include<windows.h> void ExPrintValue(int x,int y, int Value); void main() { ExPrintValue(0,0,123); } void ExPrintValue(int x,int y, int Value) { HANDLE h1; COORD pos; if(x < 0) pos.X = 0; else pos.X = x; if(y < 0) pos.Y = 0; else pos.Y...

邵阳县18914786808: C++菜鸟请教一个运算_ --
漕以双黄: i=8;j=10 m=++i+j++ 到这 先++i 使用前自加1,j++ j使用后自加1 m=9+10 该语句结束后的结果就是 i=9 j=11 m=19 n=(++i) + (++j) + m i和j在使用前都自加1 结果就是n=10+12+19 语句结束后结果为i=10 j=12 m=19 n=41 你的输出中m为10应该是你写错了++ -- 写在变量前就是在使用变量前自加/自减1,而写在变量后就是变量在使用后自加/自减1

邵阳县18914786808: 关于一个C++问题 -
漕以双黄: 以a b交换值为例 void swapint(int &a,int &b) { int temp; temp=a;a=b;b=temp; } 是引用传递 调用该函数的C++方法为:swapint(x,y); C++自动把x,y的地址作为参数传递给swapint函数.它有传值的样貌,传址的效果.

邵阳县18914786808: 一个简单的C++问题 -
漕以双黄: 第一个警告原因: 3.1415默认是double类型,你把它赋给一个float类型的变量,所以它会自动进行一个转换,建议小数都定义成double 这样就没这个问题了;解决方案:1.把第一句改成const float PI = (float)3.1415; 2.把float都改成double; 第二个警告原因: 你定义的main返回值是int而你又没写返回什么.解决方案:1.把int main(int argv, char** argc) 改成void main(int argv, char** argc) 2.在main函数的最后一句加上return 0;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网