将unsigned int归零的最快方法是什么?
我目前只是将值设置为0,但我不知道是否有任何将变量置零的技巧?在我当前的项目中,我需要几个时钟周期。我使用的是标准的8051处理器,如果有帮助的话,我需要两个不同的变量才能达到零。
答案 0 :(得分:5)
问题标记为8051,因此如果需要将寄存器归零,则将寄存器与其自身进行异或将更快地将其归零,而不是在其中移动零。一个操作码提取和解码与操作码提取解码和操作数提取。
如果您使用的是更高级别的语言而不是手动汇编或使用asm编写,那么最好使用var = 0
。编译器将负责所需的优化。
答案 1 :(得分:3)
为人类编写代码,不要浪费任何优化不需要优化的事情。如果要为变量赋值为零,则将零赋值给变量:x = 0;
快速制作正确的节目比制作快速节目更快更容易。
答案 2 :(得分:2)
我相信编译器会为你优化这类事情。请记住,微观优化会导致微观结果。
答案 3 :(得分:1)
微观优化导致微观结果。
您可以通过自身xor变量来实现零。很可能你的编译器已经这样做了,如果没有更快的话。
答案 4 :(得分:0)
首先尝试实现一种对包含相关代码的代码块进行计时的方法,如果你还没有这样做的话。
然后,尝试var = 0;并使用在列表中生成汇编程序的编译器开关。然后为XOR解决方案做同样的事情。它代表了一些额外的工作,但那时你会得到结果。