`

i++和i--哪个效率高

    博客分类:
  • C++
阅读更多

for(i = n; i > 0; i--)
{

}

for(i = 0; i < n; i++)
{

}

发现同样的循环次数,前者要比后者快。

原因是,i--操作本身会影响CPSR(当前程序状态寄存器),CPSR常见的标志有N(结果为负), Z(结果为0),C(有进位),O(有溢出)。i > 0,可以直接通过Z标志判断出来。

i++操作也会影响CPSR(当前程序状态寄存器),但只影响O(有溢出)标志,这对于i < n的判断没有任何帮助。所以还需要一条额外的比较指令,也就是说每个循环要多执行一条指令。

如果换成

for(i = 0; i > -n; i--)
{

}

for(i = -n; i < 0; i++)
{

}

那么这时候就是i++比i--效率高了,主要是因为与0比较时可以少一条指令。

不过不知道平台无关的Java是不是一定符合这种规律,因为不同JVM有不同的实现方式。

分享到:
评论

相关推荐

    compat-libstdc++-33-3.2.3-72.el7.x86_64,libaio-devel-0.3.105[i38

    标题中的"compat-libstdc++-33-3.2.3-72.el7.x86_64"和"libaio-devel-0.3.105[i38"提到了两个重要的Linux软件包,它们在IT领域中扮演着特定的角色。 1. **compat-libstdc++-33-3.2.3-72.el7.x86_64**: 这个包是针对...

    i++循环与i-–循环的执行效率(递增与递减效率)

    通过对比i--和i++在循环条件判断时生成的汇编指令,可以看到i--循环少了一个比较指令(cmp),这意味着理论上i--循环可能执行得更快。 5. 代码出处:文章最后提到的内容中给出了文章的出处,这可能意味着文章来自于...

    photoshop快捷键大全

    - **吸管工具 (I)** - **注释工具 (A)** - **度量工具 (O)** - **路径选择工具 (A)** - **快速蒙版模式 (Q)** - **抓手工具 (H)** - **缩放工具 (Z)** - **填充前景色 (Alt + Backspace 或 Alt + Delete)** - **填充...

    C语言中++和--运算的一些问题

    ### C语言中自加与自减运算符的深入解析 #### 一、引言 ...正确理解和运用这些运算符不仅可以提高代码的效率,还可以让程序更加简洁明了。希望本文能够帮助读者更好地掌握这些知识点,并在实际编程中灵活应用。

    I++ DME1.7

    I++ DME的目标是实现软件包中I++ DME和I++ DMS接口的全面覆盖,并尽可能快地实施这些接口。通过这种方式,可以促进不同制造商之间的测量设备与软件系统的互操作性,降低集成成本,提高生产效率。 - **无许可费用**...

    关于i++和++i以及左值,右值

    当不需要关心自增操作的返回值时,两者可以互换使用,但当需要利用自增运算符返回值的场景,则应当选择效率更高的++i。此外,为了保持代码的可读性和清晰性,应避免编写复杂且不易理解的表达式,这不仅有助于减少...

    基于STC89C52单片机的篮球比赛计分器设计5000.docx

    +----+--------+ +----------+-------------+ | 时间模块 | | 其他扩展接口 | | +----+--------+ +----------+-------------+ ``` #### 四、系统的软件设计 ##### (一)主程序设计 软件设计主要涉及以下几个...

    word快捷键使用大全.pdf

    这些快捷键可以大大提高使用Word进行文档编辑的效率。需要注意的是,某些快捷键在不同版本的Word中可能会有所变化,或在特定的上下文中有所不同。因此,建议在实际操作中核对快捷键与当前软件版本是否匹配。

    pads2005快捷键.pdf

    总体来说,熟悉并运用好PADS2005的快捷键,可以有效地提高设计的效率和准确性。以上列举的快捷键涵盖了从基础操作到高级设置等多个方面,它们在日常使用中扮演着至关重要的角色。用户应当根据自己的具体需求,在实践...

    windows;word;excel快捷键大全.doc

    以上是常用的Windows、Word和Excel快捷键,熟练掌握它们可以显著提高日常办公效率。记住这些快捷键需要时间,但一旦熟悉,你会发现工作变得轻松多了。此外,还有许多高级快捷键可以根据个人需求和习惯进行学习和使用...

    AI常用快捷键表.pdf

    - Ctrl+-:缩小视图 - Ctrl+0:适应屏幕显示所有内容 - Shift+Ctrl++:实际像素显示 - Ctrl+Tab:切换打开的文档 4. 工具快捷键: - Ctrl+F:查找和替换 - Ctrl+B:打开笔刷工具 - Ctrl+I:斜体文本 - Ctrl...

    四个jar包commons-io+logging+pool+javax-servlet-jsp-jstl

    在高并发的应用中,如数据库连接管理,对象池是提高性能和降低资源消耗的有效手段。 Javax Servlet JSP JSTL(javax.servlet.jsp.jstl.jar)是JavaServer Pages(JSP)标准标签库的一部分,主要用于增强JSP页面的...

    UG常用快捷键

    本文将总结UG6.0中常用的快捷键,帮助用户提高工作效率。 文件操作 * 文件(F)-新建(N):Ctrl+N * 文件(F)-打开(O):Ctrl+O * 文件(F)-保存(S):Ctrl+S * 文件(F)-另存为(A):Ctrl+Shift+A * 文件(F)-绘图(L):Ctrl...

    word和excel快捷键大汇总.pdf

    Word和Excel是Microsoft Office套件中的两个核心应用,它们在文档处理和电子表格制作方面具有广泛的应用。快捷键是提高工作效率的重要工具,尤其对于经常使用这些软件的专业人士来说,掌握快捷键可以显著提升工作...

    PS快捷键-方便记忆。借鉴.pdf

    Photoshop是一款广泛使用的图像处理软件,其快捷键的掌握能够极大地提高工作效率。下面将详细解释提供的快捷键及其对应的功能。 1. **常用工具快捷键**: - `Q`:快速蒙版工具,用于创建选区。 - `W`:魔棒工具,...

    电脑快捷键

    【电脑快捷键】是提升电脑使用效率的重要工具,...掌握以上快捷键,不仅可以提高工作效率,还能让你在使用电脑时显得更加专业和高效。在日常使用中不断实践,你会发现这些快捷键能极大地简化你的工作流程,提高生产力。

    3DMAX8快捷键总结

    3DMAX8是一款强大的三维建模、动画和渲染软件,广泛应用于影视制作、游戏开发、建筑设计等领域。快捷键是提高工作效率的关键,以下是对3DMAX8常用快捷键的详细解析: 1. 视图切换快捷键: - B: 切换到底视图 - C:...

    快捷键大全(20211008074452).pdf

    接下来,我将详细解释其中出现的一些重要的快捷键,这些快捷键在日常工作中经常被使用,能够提高工作效率,特别是在处理文档时。 1. 文档编辑快捷键 - Ctrl + C:复制选定内容。 - Ctrl + X:剪切选定内容。 - Ctrl...

    C++面试题:++i和i++哪个效率高?

     2、我们自定的数据类型,++i效率高于i++,通过运算符重载来给大家说明这一点。 Operator Operator::operator++() { ++value; //内部成员变量 return *this; } Operator Operator::operator++(int) { ...

    最新官方Photoshop_CS5快捷键大全(免费).pdf

    - `Ctrl+-`:缩小视图 - `Ctrl+0`:适应屏幕显示整个画布 - 文档和窗口快捷键,例如: - `Ctrl+N`:新建文档 - `Ctrl+Tab`:切换到下一个文档 - `Ctrl+Shift+Tab`:切换到上一个文档 - 高级功能快捷键,例如...

Global site tag (gtag.js) - Google Analytics