Я изучал алгоритм поиска одиночных целых чисел в массиве, и вот реализация:
int arr[] = {10, 20, 30, 5, 20, 10, 30};
int LonelyInteger = 0;
for(int i=0; i< 7; i++)
{
LonelyInteger = LonelyInteger ^ arr[i];
}
Результат 5
.
Мой вопрос: предположительно, целые числа (генерируемые операцией XOR
) являются слишком большими из-за этой операции:
LonelyInteger ^ arr[i]
Это приводит к потенциально большому целому числу, которое в этом случае не может быть представлено типом данных say int
. Мои вопросы:
- Возможно ли, что
XOR
будет генерировать такое большое целочисленное значение, которое не может быть сохранено в типеint
? - Если это невозможно, это может быть доказано для этого?