结合性的问题

来源:互联网 发布:两张表数据同步sql 编辑:程序博客网 时间:2024/04/29 03:16

默认情况下,如果你输入一个浮点值到c++类型为双。因此,如果你是这样的:

浮动fValue = 4.53;4.53 / /双

你分配一个双浮动,失去精度,编译器可能会抱怨。

把一个“f”后价值意味着你意愿价值浮动,而不是双。然后当你这样做:

浮动fValue f = 4.53;/ / 4.53是一个浮点数

你将浮动值分配给一个浮点数变量,这更有意义。|

好吧,所以在二进制,我们必须近似无限总和的1的小数0.1。我还是不明白为什么我们不能使用所有的“重量”,也就是说,所有的权力,但只有1/16,1/32,1/256,1/512,也就是说,第四的位置(2 ^ 4 = 16),第五,第八,第九,等等。换句话说,我们为什么不有0.011111111…………这等于1/2 + 1/4 + 1/8 + 1/16 +…?它还方法1 !(当然我是0.1的小数部分,也就是说,1)。

为了恰当地评估一个表达式如4 + 2 * 3,我们必须了解运营商做什么,和正确的顺序,应用它们。运营商评估的顺序在复合表达式称为运算符优先级。使用正常的数学优先规则(即乘法解决除了之前),我们知道,上面的表达式应该评估4 +(2 * 3)= 10。

在c++中,所有的运营商都分配一个优先级水平。这些优先级最高的评价。在下面的表中可以看出,乘法和除法(优先级5)有一个优先级高于加法和减法(优先级6)。编译器使用这些级别来确定它遇到如何评估表达式。

如果两个操作符优先级相同的表达式中相互毗邻,结合性规则告诉编译器是否评估运营商从左到右或从右到左。例如,在表达式3 * 4 / 2,乘法和除法运算符都是优先5级。5级的结合性从左到右,所以表达式从左到右:解决(3 * 4)/ 2 = 6。

一些运营商你应该已经认识到:+,-,*,/,()=、<、>、< =和> =。这些算术运算符和关系具有相同的含义在c++中一样在日常使用。

然而,除非你有另一个编程语言方面的经验,很有可能大部分运营商这个表将无法理解你在这个时间点上。这是预期在这一点上。在本章我们将讨论他们中的许多人,和其余的将介绍需要他们。

上面的表主要是为了参考图,你可以参考在未来解决任何优先级和结合性的问题。


0 0
原创粉丝点击