.NET 4.x Вылетает OverflowException в unchecked блоке - C#
Формулировка задачи:
Собственно, почему код приведенный ниже выкидывает OverflowException ? Изначально просто хотел написать небольшую головоломку...
Листинг программы
- int x;
- unchecked
- {
- x =Math.Abs(int.MinValue) * 2;
- }
Решение задачи: «.NET 4.x Вылетает OverflowException в unchecked блоке»
textual
Листинг программы
- using System;
- class Program
- {
- public static int DoubleAbs(int x)
- {
- if (x < 0) x = (x ^ -1) + 1;
- return x << 1;
- }
- public static void Main()
- {
- Console.WriteLine(DoubleAbs(10));
- Console.WriteLine(DoubleAbs(-10));
- Console.WriteLine(DoubleAbs(Int32.MaxValue));
- Console.WriteLine(DoubleAbs(Int32.MinValue));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д