标题有点误导,但我不知道还有什么可以称之为。我有一个由2个值组成的数组:
int array [2];
其中一个值将包含0而另一个值将不包含0.如果不使用if语句,最好不使用布尔表达式,我想确定array[0];
是否包含0 。如果它不包含0,则应返回1,否则应返回0.
我已尝试将第一个值单独划分,但可能会出现Division By Zero错误,而我没有其他替代方法来解决我的问题。
我的目标格式是这样的:
array[check if zero index is 0];
array[0] = 20;
array[1] = 0;
array[check if zero index is 0]; // index is 1
array[0] = 0;
array[1] = 73;
array[check if zero index is 0]; // index is 0;
答案 0 :(得分:1)
这假设是32位int的
((static_cast<unsigned>(-(array[0]*array[0]))&(1ul<<31))>>31)