我在程序里运行如下代码
int a= 255;
//二进制是 1111-1111
a = a * 256;
//a=65280
//二进制是 1111-1111-0000-0000
a = a * 256;
//a=16,711,680
//二进制是 1111-1111-0000-0000-0000-0000
a = a * 256;
//a= -16777216
//二进制是 1111-1111-0000-0000-0000-0000-0000-0000
请问第4步 a的值超过32位之后,C#是如何算出 -16777216 这个值的?