Рассмотрим этотINT или UINT или что
int i = 2147483647;
var n = i + 3;
i = n;
Console.WriteLine(i); // prints -2147483646 (1)
Console.WriteLine(n); // prints -2147483646 (2)
Console.WriteLine(n.GetType()); // prints System.Int32 (3)
Я запутался со следующими
- (1) как можно ИНТ хранить значение -2147483646? (Диапазон INT = -2147483648 до 2147483647)
- (2) почему это печать -2147483648 но не 2147483648 (компилятор должен решить лучший тип, как INT диапазон превышает)
- (3), если он преобразуется где-то, почему n.GetType() дает System.Int32 ?
Edit1: Сделано исправление: Теперь вы получите то, что я получаю. (извините за это)
var n = i + 1; до
var n = i + 3;
Edit2: Еще одна вещь, если она перетекала, почему исключение не воскресают?
Дополнение: как это происходит переполнение, это не правильно установить тип для
вар п
в заявлении var n = i + 3;
другого типа соответственно?
вы можете предложить лучшее название, так как это не делает смысл .... мне, по крайней мере
Благодаря
За что голосовать? –