public static void ToUInt64WithSign(long value, out ulong resultValue, out bool negative) { negative = value < 0; resultValue = !negative ? (ulong)value : value != long.MinValue ? (ulong)-value : long.MaxValue + 1UL; }