相关疑难解决方法(0)

两个整数的XOR可以超出界限吗?

我一直在研究在数组中查找孤独整数的算法,这里是实现:

int arr[] = {10, 20, 30, 5, 20, 10, 30};
int LonelyInteger = 0;
for(int i=0; i< 7; i++)
{
    LonelyInteger = LonelyInteger ^ arr[i];
}
Run Code Online (Sandbox Code Playgroud)

结果是5.

我的问题是 - 据说整数(由XOR操作产生)由于这个操作太大了:

LonelyInteger ^ arr[i]
Run Code Online (Sandbox Code Playgroud)

这导致一个潜在的大整数,int在这种情况下无法用数据类型表示.我的问题是:

  1. 是否有可能XOR生成无法存储在int类型中的如此大的整数值?
  2. 如果不可能发生这种情况,那么有证据吗?

c c++ bit-manipulation integer-overflow bitwise-xor

52
推荐指数
8
解决办法
1万
查看次数

标签 统计

bit-manipulation ×1

bitwise-xor ×1

c ×1

c++ ×1

integer-overflow ×1