I am trying to convert negative Integer.MIN to positive long value using below code :
long lv = -1 * value_int;
Above code works perfectly except when value of value_int = Integer.MIN_VALUE. In Integer.MIN_VALUE case, value of lv is always Integer.MIN_VALUE;
Below code work in all cases including Integer.MIN_VALUE
long lv = value_int;
lv = -1 * value_int;
Any idea why long lv = -1 * value_int does not work in Integer.MIN_VALUE case?