gpt4 book ai didi

c - 如何判断三个数是否相等

转载 作者:太空狗 更新时间:2023-10-29 15:17:50 27 4
gpt4 key购买 nike

使用严格的按位运算,我如何确定三个数字是否相等。到目前为止,我的代码如下所示,但它不适用于 0x80000000,0x7fffffff,0x7fffffff 等边缘情况。

int isEqualThree(int x, int y, int z) {
int first = x ^ y;
int second = first ^ z;
int third = second ^ x;
int final = !third;
return final;
}

最佳答案

试试这个

int check(int a,int b,int c)
{
return !((a^b)|(b^c));
}

由于没有指定要使用的运算符数量的限制,如果 !不允许那么考虑到 32 位数字,这也是一个解决方案,仅使用按位运算符

int check(int a,int b,int c)
{
int d;
d=(a^b)|(b^c);
d=~d;
return ((d>>31&1)&(d>>30&1)&(d>>29&1)&(d>>28&1)&(d>>27&1)&(d>>26&1)&(d>>25&1)&(d>>24&1)&(d>>23&1)&(d>>22&1)&(d>>21&1)&(d>>20&1)&(d>>19&1)&(d>>18&1)&(d>>17&1)&(d>>16&1)&(d>>15&1)&(d>>14&1)&(d>>13&1)&(d>>12&1)&(d>>11&1)&(d>>10&1)&(d>>9&1)&(d>>8&1)&(d>>7&1)&(d>>6&1)&(d>>5&1)&(d>>4&1)&(d>>3&1)&(d>>2&1)&(d>>1&1)&(d&1));

关于c - 如何判断三个数是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com