C++算术运算符与算术表达式

基本的算术运算符

在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍。

常见算数运算符
运算符 说明 举例
+ 加法运算符,或正值运算符 3+5,+3
- 减法运算符,或负值运算符 5-2,-3
* 乘法运算符 3*5
/ 除法运算符 5/3
% 模运算符,或称求余运算符 %两侧均应为整型数据,如7%4的值为3

需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,-5/3在有的C++系统上得到结果-1,有的C++系统则给出结果-2。多数编译系统采取“向零取整”的方法,即5/3的值等于1,-5/3的值等于-1,取整后向零靠拢。

如果参加+,  -,  *, / 运算的两个数中有一个数为float型数据,则运算的结果是double型,因为C++在运算时对所有float型数据都按double型数据处理。

算术表达式和运算符的优先级与结合性

用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C++语法规则的式子,称C++算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C++算术表达式:
    a*b/c-1.5+‘a‘

C++语言规定了运算符的优先级和结合性。在求解表达式时,先按运算符的优先级别高低次序执行,例如先乘除后加减。如有表达式a-b*c,b的左侧为减号,右侧为乘号,而乘号优先于减号,因此,相当于a-(b*c)。如果在一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。

C++规定了各种运算符的结合方向(结合性),算术运算符的结合方向为“自左至右”,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。“自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性(例如赋值运算符)。关于“结合性”的概念在其他一些高级语言中是没有的,是C和C++的特点之一,希望能弄清楚。

C++所有运算符以及它们的优先级别和结合性请查看这里:C++运算符优先级表

表达式中各类数值型数据间的混合运算

在表达式中常遇到不同类型数据之间进行运算,如:
    10+‘a‘+1.5-8765.1234*‘b‘
在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图2.7所示。


图2.7

假设已指定i为整型变量,f为float变量,d为double型变量,e为long型,有下面表达式:
    10+‘a‘+i*f-d/e
运算次序为:

  1. 进行10+‘a‘的运算,先将‘a‘转换成整数97,运算结果为107。
  2. 进行i*f的运算。先将i与f都转换成double型,运算结果为double型。
  3. 整数107与i*f的积相加。先将整数107转换成双精度数(小数点后加若干个0,即107.000…00),结果为double型。
  4. 将变量e转换成double型,d/e结果为double型。
  5. 将10+‘a‘+i*f的结果与d/e的商相减,结果为double型。

上述的类型转换是由系统自动进行的。

时间: 2024-10-11 03:16:57

C++算术运算符与算术表达式的相关文章

6、C#的算术运算符和算术表达式

C#这门编程语言和其它的编程语言是非常的相似的,算术运算符和算术表达式也是如出一辙. 1. +  加 - 减 *  乘 /  除 % 求余 这些基本的算术运算符可以对常量或者变量进行算术运算. 此外,还有自增运算符和自减运算符. ++ 可以把++当做是函数名,后面加上一对小括号,这样子可以实现自增. ++在前,表示先自增,后赋值.++在后,表示先赋值,后自增. 比如: int a; int b; b=2; //a=++(b);  //先自增,后赋值. a=(b)++;   //先赋值,后自增.

算术运算符和算术表达式(优先级,结合性等)

%  得到余数  7 % 2 得到1 运算符的优先级 C语言中,运算符的运算优先级共分为15级.1级最高, 15级最低.在表达式中, 优先级较高 的先于优先级较低的进行晕死.而在一个运算量两侧的运算符优先级相同时, 则按运算符的 结合性所规定的结合方向处理. 运算符的结合性 c语言中各运算符的结合性分为两种, 即左结合性(自左至右)和右结合性(自右至左). 例如: 左结合性: 算术运算符的结合性是自左至右,即先左后右.如有表达式x-y+z则y应先与“-”结合,执行 x-y,在+z的yuns.这种

算术运算符和算术表达式(初学者)

1.C语言的运算符可以分为以下几类: 1.算术运算符:加(+).减(-).乘(*).除(/).求余(%).自增(++),自减(--) 2.关系运算符:大于(>).小于(<).等于(==).大于等于(>=).小于等于(<=).不等于(!=) 3.逻辑运算符:与(&&).或(||),非(!) 4.位操作运算符:参与运算的量,按二进制位进行运算.位与(&).位或(|).位非(!).位异或(^).左移(<<).右移(>>) 5.赋值运算符:用

python基础学习(二)注释和算术运算符

注释 1. 注释的作用 注释就是对某些代码进行标注说明,以增强代码的可读性.我们在写程序的时候,编写的某一部分代码的意图不太明显,这时候就需要对这一部分代码加以说明,来明确这一部分到的意图.一般的编程语句有单行注释和多行注释 2. 单行注释 单行注释是以#开头,#右边的所有的文字都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用 示例代码如下(为了保障可读性,#后面一般要加上一个空格): # 这是单行注释 print("Hello word") 在代码的后面加上单行注释 为了

算术运算符和表达式

C语言的运算符范围很宽,除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,下图是C运算符的分类 1  算术表达式 用算术运算符和括号将运算对象(也称操作数)连接起来的,符合语法规则的式子成为算术表达式.运算对象包括 常量 变量 函数. C语言规定了各种运算符的结合方向,这是C语言特点之一,是别的高级语言所没有的.算术运算符的结合方向为"自左至右"又称为"左结合性",以后还可以看到有些运算符的结合方向为"自右至左"即"右结合

08-JAVA算术运算符和逻辑运算符

Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  >=  <  <= 逻辑运算符(6):&&  ||  !  ^  &  | 位运算符(7):&  |  ~  ^  >>  <<  >>> ----------------------------------------------

C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

四.运算符(1)算术运算符

(1)算术运算符 1:学习目标,掌握运算符,和取模运算,和书写表达式.结合前面的变量类型知识,更深入学习. 在php中存在各种各样的动算,首先我们了解下,我们所最能理解的 算术运算符 + - * / % . <?PHP $a=10; $b=0; echo $a/$b;          //除数不能为0 $a为被除数 $b为除数 echo $a+$b;       //打印出10; $a = 3200000000; $b = 3200000000; $c = $a + $b; var_dump(

javascript算术运算符详解

算术运算符 +.-.*./.%.++.-- ++.--分为前缀形式和后缀形式 前缀形式先加减1在执行 后缀形式先执行再加减1 注意 +号用来连接两个字符串 只要+连接的操作数中有一个是字符串型,JS就会自动把非字符串型数据作为字符串型数据来处理 JS代码的执行顺序是从左到右,所以在+连接的表达式中,遇到字符串型数据之前,所有出现的数值型数据(或者可以自动转换为数值型的数据)仍被作为数值来处理.为了避免这种情况,我们可以在表达式前拼一个空字符串 实例 <!DOCTYPE html> <ht