c#取反,我连二进制都看不懂了,求救!

static void Main (string[] args)
{
   int a=12; //"00001100"
   int b;
    b=~a;
Console. WriteLine(b);  //"b=-13  11110011" 这个地方看不明白,二进制数“11110011”不应该是-115 
                          吗?
Console.ReadLine();
}

 

https://blog.csdn.net/a13155283231/article/details/109739029

也就是说,c#中取反是对补码取反,取反后还要翻译成原码。