内容简介:翻译自:https://stackoverflow.com/questions/1683029/return-zero-for-negative-integers
朋友只是抛出一些类似于以下C#代码的代码:
int i = ...; return i < 0 ? 0 : i;
这让我想到了.对于负整数或当前正值,有任何“不同”的方法返回零吗?更具体地说,如果可能的话,我正在寻找按位运算.
顺便说一句,我知道Math.Max(0,i);
Math.Max出了什么问题?
您可以使用按位运算在没有分支的情况下执行等效操作:
r = x ^ ((x ^ y) & -(x < y)); // == max(x, y)
如果替换为零,则会折叠为:
r = (y & -(0 < y)); // == max(0, y)
(来源: this list 的按位技巧.)
如果你的平台上的分支是非常昂贵的,那么在一些内循环中这可能是值得的,但我认为,这是非常模糊的,而不是我想在极其时间敏感的函数之外遇到的那种东西.
翻译自:https://stackoverflow.com/questions/1683029/return-zero-for-negative-integers
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 989-数组形式的整数加法
- leetcode刷题-----7. 整数反转
- Python 2.7 源码 - 整数对象
- 深入理解动态规划算法:凑整数
- 剑指offer 16——数值的整数次方
- C++整数常量的前缀和后缀
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Is Parallel Programming Hard, And, If So, What Can You Do About
Paul E. McKenney
The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity.1 By describing the algorithms and designs that have worked well in the pa......一起来看看 《Is Parallel Programming Hard, And, If So, What Can You Do About 》 这本书的介绍吧!