gpt4 book ai didi

c - 和...之间的不同 !和 ~ 在 C 中的 isNotEqual 函数中

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:59 25 4
gpt4 key购买 nike

你好,我一直在尝试在我的机器组织课上做作业。我不得不写代码

/*    
* Examples: isNotEqual(5,5) = 0, isNotEqual(4,5) = 1
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 6
* Rating: 2
*/

经过一番思考我意识到要写代码

int isNotEqual(int x, int y) {
return x^y;
}

但是没有用。经过一番搜索,我发现了一个与我的相似的代码,但是有!在 x^y 前面。

int isNotEqual(int x, int y) {
return !!(x^y);
}

找到这段代码后,我尝试了一下,它成功了。所以我尝试了同样的事情,但前面有 ~~ ,但它没有用。我认为 !不仅意味着“不”,而且还意味着其他事情。这就是我们这样做的原因! (not+not=yes) 两次以获得相同的值,但得到不同的答案。

我关于 !! 的看法正确吗?什么!到底做什么?~ 和 ! 有什么区别?什么时候用 ~ 什么时候用 !?

最佳答案

~ 翻转数字中的所有位。将每个位翻转两次,返回相同的位,因此数字保持不变。

! 应用于非零操作数时为零,应用于零时为一。所以如果操作数是一或零,它会给你相同的操作数。但是当操作数既不是 1 也不是 0 时,它会返回一个而不是原来的数字。

所以 ~~ 总是给你原始数字,而 !! 给你一个或零。

关于c - 和...之间的不同 !和 ~ 在 C 中的 isNotEqual 函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702392/

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