Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20786
  • 博文数量: 14
  • 博客积分: 325
  • 博客等级: 一等列兵
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-13 10:46
文章分类

全部博文(14)

文章存档

2012年(14)

我的朋友
最近访客

分类: C/C++

2012-08-08 15:43:53


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



算术运算符

求余运算符(%)的操作数只能是整型,如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!

 
阅读(512) | 评论(0) | 转发(1) |
0

上一篇:重载C++的运算符

下一篇:位操作符

给主人留下些什么吧!~~