C/C++的规则是,假如一个Unsigned和一个signed做数学运算,结果就是一个足够大能包含结果的unsigned。
但是C#似乎没有这样的规则。本人想知道C#的标准(spec)有没有这方面的规定? 例如
但是C#似乎没有这样的规则。本人想知道C#的标准(spec)有没有这方面的规定? 例如
short s1 = 3000; ushort s3 = 40000; var v = s1 * s3; Console.WriteLine(v.GetType().ToString());
打印的结果是v的类型是System.Int32而不是UInt32。
有标准/规则吗?
解决方案
40
7.2.6.2 Binary numeric promotions
连接:
https://msdn.microsoft.com/zh-cn/library/aa691330(v=vs.71).aspx
连接:
https://msdn.microsoft.com/zh-cn/library/aa691330(v=vs.71).aspx