异或和比较哪个效率高

比较。因为编译器会优化为:for(i=10;--i\u0026gt;0;){}编译成汇编就是一条dec指令,最快的cpu指令。跟jz,最快的跳转指令。异或相当于多了一条指令。
■网友
你题目问的和给的例子不完全对应。xor本身很可能是比比较快的,因为branch prediction的不完全准确。但是你这例子,xor之后还有一步比较呢。你的后面那个循环条件是i^10!=0。所以在绝大部分编译器+平台下很可能都是后者慢。作为一个会接触嵌入式的人,抛开compiler和arch谈汇编level的东西是不合理的,不同compiler在不同的优化条件下对同样的c代码会产生不同的汇编代码,而不同的arch下更是可能区别巨大。比如某个arch提供硬件log,然后你问log和某个函数哪个快,那在这个arch下和在一个不提供硬件log的arch下,差别就会很大。


    推荐阅读