C#int32 literal只能以long数据类型存储

时间:2012-12-04 15:07:01

标签: c# variable-assignment literals unsigned-integer

我正在准备一个非常棘手的c#考试,这个问题突然出现了。 我有以下代码:

 uint zzz = -12u;

-12u被识别为System.Uint32字面值,但只能存储在long类型的变量中。这是为什么 ?

2 个答案:

答案 0 :(得分:12)

它正在做的是使用unsigned int 12并尝试将其转换为负值({​​{1}}),这需要转换为可以处理负数的类型,因为unsigned int不能。

因为它是无符号整数,所以它有可能超出int范围的值,因此需要转换为long。

答案 1 :(得分:0)

因为u用于无符号的int 用于处理-ve sign将其转换为Long数据类型
-12u是一个带符号的int数据类型&要将其存储在unsigned类型中,它使用long数据类型