我正在准备一个非常棘手的c#考试,这个问题突然出现了。 我有以下代码:
uint zzz = -12u;
-12u
被识别为System.Uint32
字面值,但只能存储在long
类型的变量中。这是为什么 ?
答案 0 :(得分:12)
它正在做的是使用unsigned int 12并尝试将其转换为负值({{1}}),这需要转换为可以处理负数的类型,因为unsigned int不能。
因为它是无符号整数,所以它有可能超出int范围的值,因此需要转换为long。
答案 1 :(得分:0)
因为u
用于无符号的int
用于处理-ve sign将其转换为Long数据类型
-12u是一个带符号的int数据类型&要将其存储在unsigned
类型中,它使用long
数据类型