C语言“%”运算符
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。
C语言“%”运算符的更多相关文章
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
[源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native ...
- 一道c语言运算符优先级问题
一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...
- [转]说说C语言运算符的“优先级”与“结合性”
补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...
- 李洪强-C语言7-C语言运算符
C语言运算符 一.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. ①. 加法:+ 还可以表示正号 ②. 减法:- 还可以表示负号 ③. 乘法:* 非数学意义上的X ④. 除法:/ 注意 ...
- C语言的本质(7)——C语言运算符大全
C语言的本质(7)--C语言运算符大全 C语言的结合方向 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左).例如算术运算符的结合性是自左至右,即先左后右.如有表达式 x- ...
- C语言运算符优先级总结
一 写在开头1.1 本文内容本文内容为C语言中运算符优先级的总结.转载于:https://blog.csdn.net/huangblog/article/details/8271791,感谢原作者的付 ...
- C语言运算符优先级和ASCII表
1. C语言运算符优先级及结合性 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成 ...
- 说说C语言运算符的“优先级”与“结合性”
论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时.但从本质上看,仍然是概念理解上的偏差.本文试图通过对三个典型表达式的分析,集 ...
- C语言运算符优先级及结合性
今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...
随机推荐
- Junit使用第二弹
实例总结 1. 参数化测试 有时一个测试方法,不同的参数值会产生不同的结果,那么我们为了测试全面,会把多个参数值都写出来并一一断言测试,这样有时难免费时费力,这是我们便可以采用参数化测试来解决这个问题 ...
- 生物信息之ME, HMM, MEMM, CRF
原文链接:http://bbs.sciencenet.cn/home.php?mod=space&uid=260809&do=blog&id=573755 注:有少量修改!如有 ...
- 编写可维护的javascript阅读笔记
格式 变量 变量命名, 采取小驼峰大小写 变量使用名词, 函数前缀为动词 局部变量应统一定义在函数的最上面, 而不是散落在函数的任意角落. 赋初始值的定义在未赋初始值的变量的上面. 我个人建议不使用单 ...
- 远程连接windows出现身份验证错误,提示"由于CredSSP加密Oracle修正"解决方案
本机操作系统(OS版本:10.0.17134) 远程计算机操作系统(OS版本:6.3.9600) 远程连接的时候报错“出现身份验证错误,要求的函数不受支持.远程计算机:xxx 这可能是由于CredSS ...
- 修改XtraMessageBox的内容字体大小
修改XtraMessageBox的内容字体大小 public static DialogResult Show(UserLookAndFeel lookAndFeel, IWin32Window ow ...
- linux--ubuntu的下载以及VMware Tool的安装
1. Ubuntu的下载:http://cn.ubuntu.com/download/ 2. VMware Tool的安装: 第一步:在主机上,从 Workstation Pro 菜单栏中选择虚拟机 ...
- spring注解@Autowired和@Resource比较
用途:都是做bean的注入时使用 历史:@Autowired 属于Spring的注解 org.springframework.beans.factory.annotation.Au ...
- BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)
题面:洛谷传送门 BZOJ传送门 最大流神题 把点权转化为边权,切糕里每个点$(i,j,k)$向$(i,j,k+1)$连一条流量为$v(i,j,k)$的边 源点$S$向第$1$层的点连边,第$R+1$ ...
- mysql 每个月创建新表
1.CREATE DEFINER=`root`@`%` PROCEDURE `aa`()BEGIN SET @sqlstr = CONCAT('create table cdrpbx10_',DATE ...
- python第三周:集合、函数、编码、文件
1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集 ...