gpt4 book ai didi

c++ - ~i 真的等同于 i != -1 吗?

转载 作者:可可西里 更新时间:2023-11-01 18:08:46 27 4
gpt4 key购买 nike

~i 在 C++ 中如何工作?

我刚刚注意到它等同于 i != -1,但我不确定。

int arr[3] {1, 2, 3};
int n = 3;
for (int i = n - 1; ~i; i--) {
cout << arr[i] << ' ';
}

它反向打印数组。

最佳答案

~ 是按位非运算符。 ~i 为 0 当且仅当 i 的所有位都为 1 时。 -1 是否所有位都为 1 取决于带符号数在系统上的表示方式。在二进制补码表示中,-1 用所有位 1 表示,因此在这样的系统上 ~(-1) == 0。无论是在一个补码中,还是在符号和大小中,这都不成立。

因此,答案是否定的;并非在所有系统上。也就是说,二进制补码在现代机器(自 90 年代以来制造的一切)中相当普遍,而在此类系统上,答案是肯定的。然而,无论符号表示如何,i != -1 都更具可读性。

关于c++ - ~i 真的等同于 i != -1 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56772643/

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