问题:
比如:给定两个值 5和10,不通过比较,直接找出最大值。
分析:
一旦涉及到不用比较找最大值,想都不用想,一般只能通过位运算来实现。
max = a - ((a-b)&((a-b)>>31))
或者
max = ((a+b)+|a-b|)/2
如果找最小值,我们只需把两个值相加,减去max即可。
问题:
比如:给定两个值 5和10,不通过比较,直接找出最大值。
分析:
一旦涉及到不用比较找最大值,想都不用想,一般只能通过位运算来实现。
max = a - ((a-b)&((a-b)>>31))
或者
max = ((a+b)+|a-b|)/2
如果找最小值,我们只需把两个值相加,减去max即可。