Я получаю OverflowException выдается на меня, когда я не хочу их (или я так думаю). Я выполняю некоторые странные вычисления, где ожидаю переполнения значений, отбрасывая переполненные биты. Кажется, я не могу заставить это работать должным образом все же. По сути, это одна пара i и j, которая происходит, когда я перебираю огромные множества (от int.MinValue до int.MaxValue).
// i and j are ints
// i is -2147483648
// j is -1
var x = i / j;
// I also tried using unchecked keyword, but it doesn't help
var x = unchecked(i / j);
Обновление:
Ожидаемое математическое значение -2147483648 / -1 равно 2147483648. Однако этот определенный код на самом деле не пытается найти число. Это часть серии манипуляций, которые трудно понять. Честно говоря, я даже сам не знаю, каково было намерение, потому что я на самом деле не документировал метод, и все, что ему понадобилось, - это один день, чтобы поднять серьезные WTF-пузыри над головой. Все, что я знаю, это работает так, как задумано, с помощью специального кода, предназначенного для обработки случая.
Об ожидаемом значении:
Поскольку int может содержать только максимум 2147483647, я ожидаю сбросить выходное значение переполнения 0.
Если я вообще что-то узнал об этом, то, вероятно, важна документация для непонятных методов.