为什么返回0?

时间:2018-06-24 22:32:29

标签: c#

using System;
namespace test_warmup
{
    class Program
    {
        static void Main(string[] args)
        {
            int test = -1110835200;
            test = test * 1700397056;
            Console.WriteLine(test);
        }
    }
}

1 个答案:

答案 0 :(得分:2)

-1110835200 * 1700397056 = -1888860903781171200

以十六进制显示,即-0x1a3694fc_00000000

在C#中,int is only 32-bits的结果被截断为0

换句话说,该乘法的结果太大而无法放入您要为其分配的变量中,而适合的部分全为零。