Операция вида ~x результатом операции является побитовое дополнение x.
Оператор ~ выполняет операцию поразрядного дополнения операнда, заключающуюся в инвертировании каждого бита. Операторы поразрядного дополнения предопределены для типов int, uint, long и ulong
int v = 0;
Console.WriteLine("~0x{0:x8} = 0x{1:x8}", v, ~v);
Результат
int v = 0;
int vv = ~v;
Console.WriteLine("~{0:d} = {1:d}", v, vv);
Примеры:
static void Main(string[] args)
{
Console.WriteLine(~1999999999);
}
Результат выражения -2000000000, тип – int
static void Main(string[] args)
{
Console.WriteLine(~3999999999);
}
Результат выражения 294967296, тип – uint
static void Main(string[] args)
{
Console.WriteLine(~5999999999);
}
Результат выражения -6000000000, тип – long