Chinaunix首页 | 论坛 | 博客
  • 博客访问: 505050
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类:

2012-08-10 12:29:33

原文地址:C++中的算术运算符 作者:kilomijo


操作符具有优先级(判断是否先于其它操作符进行运算),结合性(先与左操作数结合还是先与右操作数结合)。
大部分操作符无法保证特定的求值顺序(即先求解左操作数还是右操作数)



算术运算符

求余运算符(%)的操作数只能是整型,如bool, char, short, int, long, long long以及对应的unsigned类型。


若两个操作数都为正数:
除法(/)求余(%)的结果都为非负数。

若两个操作数都为负数:
除法(/)的结果为非负数;求余(%)的结果为非正数。

若两个操作数为一正一负:
除法(/)的结果为非正数,具体值取决于机器。
求余(%)的结果和具体值都取决于机器。若结果随分子的符号,则值向零一侧取整;若结果与分母的符号匹配,则值向负无穷取整。

在真机上试验结果如下:
  1.  21/5;   // result is 4
  2.  21%5;   // result is 1
  3. -21/-5;  // result is 4, as same as 21/5
  4. -21%-5;  // result is -1, as same as -(21%5)

  5. -21/5;   // result is -4, it's machine-dependent!
  6. -21%5;   // result is -1, it's machine-dependent!
  7.  21/-5;  // result is -4, it's machine-dependent!
  8.  21%-5;  // result is 1, it's machine-dependent!

 
阅读(650) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~