C语言中运算符“%”是取余运算符,而非取模运算符。(运算符“%”在C/C++, JAVA中,为取余运算,而在Python中为取模运算)

对于一个C语言取余表达式a % b,设其值为result,有如下公式:

  1. k = (int)a / b ((int)强制类型转换,会把值向 0 方向舍入)

  2. result = a - k * b

取模和取余的区别:计算 k 的值时舍入的方向不同,取模运算符会把 a / b 的结果向负无穷取舍,而取余运算符会把 a / b 的结果向 0 取舍。(例如,-4 / 3 的取模时 k 的值为 -2 ,而取余时 k 的值为 -1)

例子:

  求13 % 4的值。

  1. k = (int)13 / 4 = 3

  2. result = 13 - 3 * 4 = 1

  所以,其值为1。

注意事项:取余运算符的两个操作数必须都是整数,且第二个操作数不能为零。

特殊情况:

  当|a| < |b|时,值永远是 a。

  当|a| = |b|时,值永远是 0。

  当  a = 0 时,值永远是 0。

最新文章

  1. crontab不执行perl脚本分析
  2. MSSQL 查询数据库所有表的大小, 有助于删除一些没用的表
  3. Iterator(迭代器)的使用
  4. js中attr 与find 获取属性值,
  5. Ajax做分页
  6. dede让channelartlist标签支持currentstyle属性 完美解决
  7. 模板:abs用法
  8. PHP自动识别字符集并完成转码详解
  9. SQL 存储过程(学生,课程表,选修表)
  10. Hadoop学习记录(5)|集群搭建|节点动态添加删除
  11. HDU 1712 ACboy needs your help 典型的分组背包
  12. 负载均衡集群之LVS算法和模型
  13. Mac Python路径总结
  14. mysql READ-COMMITTED 模式下 行锁不会升级到表级锁
  15. 逆向project第004篇:令计算器程序显示汉字(下)
  16. Java数据结构与算法(2) - ch03排序(冒泡、插入和选择排序)
  17. Ubuntu Linux系统下apt-get命令详解
  18. Block 实践
  19. MOBA项目定点数的一个想法
  20. 44-java断点调式dubug

热门文章

  1. Verilog之$sreadmemb
  2. jQuery 插入元素
  3. 路飞学城Python-Day78
  4. 将JavaBean对象/List或Set或Map对象转成JSON方式
  5. 网络教程(10)回顾ARP和ping数据包
  6. 【2018集训队互测】【XSY3372】取石子
  7. Btrfs 文件系统
  8. 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) B】Unnatural Conditions
  9. ACdream 1229 Data Transmission
  10. Linux下ffmpeg的wav与amr相互转换