C++ 为什么用C++;库特<&书信电报;8*7/2等于28?
我们知道博德马斯法则,或者首先根据优先级,划分将首先发生。所以7/2=3,当我们除以(int)/(int)。然后乘以8,那么3*8将是24C++ 为什么用C++;库特<&书信电报;8*7/2等于28?,c++,C++,我们知道博德马斯法则,或者首先根据优先级,划分将首先发生。所以7/2=3,当我们除以(int)/(int)。然后乘以8,那么3*8将是24 < C++ >代码> CUT> P>我们不严格遵循BordMax,>+-/COD>比*/优先级低。但是+和-具有相同的优先级。这意味着从左到右首先出现的一个将首先被计算。类似地,*/具有相同的优先级 所以cout 我们知道博德马斯法则,或者首先根据优先级,划分将首先发生 哦,不。对于我的kwnoledge(参见示例or),BODMAS代表 B先用括号括起来
< C++ >代码> CUT> P>我们不严格遵循BordMax,
+
和-
具有相同的优先级。这意味着从左到右首先出现的一个将首先被计算。类似地,*/
具有相同的优先级
所以cout
我们知道博德马斯法则,或者首先根据优先级,划分将首先发生
哦,不。对于我的kwnoledge(参见示例or),BODMAS代表
B先用括号括起来
O阶数(即幂和平方根等)
DM除法和乘法(从左到右)
AS加减法(从左到右)
因此,在数学中,8*7/2
将被处理为(8*7)/2
在处理实数时,乘法和除法的顺序并不重要。而(8*7)/2
与8*(7/2)
但在C(或C++)整数算术中,情况有所不同。乘法和除法运算符具有相同的优先级,且左关联。这意味着8*7/2
被解释为(8*7)/2
,在本例中,它给出了与真实数学对应的答案。因此,虽然在数学上7/2*8
等于8*7/2
,但在C语言中,它将非常不同,因为它受不同的规则控制。计算机不做实数运算
是的,在计算机(整数)算术中,它确实与你做事的顺序有关。8*7/2
与(8*7)/2
相同,你可以试试8*(7/2)
。请选择一种语言。C、C++和java不是同一种语言,可能有不同的规则。“我们知道BordMas规则,或者首先根据优先级,除法会首先出现。”只有当语言遵循BordMaS规则。许多编程语言对除法和乘法具有相同的优先级,两者都具有从左到右的关联性。在这些语言中,我期望得到28的结果。对于C++,操作符遵循。这些确实因语言而异*
和/
都以“从左到右”的优先级进行计算。从未听说过BODMAS,但我发现的描述中没有说“乘法前除法”,而是有一个“从左到右的除法和乘法”步骤,这就是你的程序所做的。C++和我所发现的所有博文的描述一样。首先是括号,然后是顺序,然后是从左到右的除法和乘法,然后是从左到右的加法和减法。在数学中,乘法和除法总是有相同的优先级,“先出现”不是技术上正确的措辞,<代码> *>代码>和<>代码> />代码>具有相同的优先级和左到右的关联性:注意C++不严格保证左右对的评价。C++使用优先级来构建评估树。一旦构建,该树甚至可以并行计算。