这个问题之前被问过,但我仍然感到困惑.
我知道
unsigned int a = -1;
Run Code Online (Sandbox Code Playgroud)
会的UINT_MAX.但这并不是因为-1的所有位都已设置.C11说
如果新类型是无符号的,则通过重复加或减一个可以在新类型中表示的最大值来转换该值,直到该值在新类型的范围内为止
所以假设UINT_MAX是100(我知道它应该大于2 ^ 16-1但现在让我们忽略它)
unsigned int a = -1; // will be
unsigned int a = -1 + UINT_MAX + 1; // 100 = UINT_MAX
Run Code Online (Sandbox Code Playgroud)
标准只说UINT_MAX >= 2^16-1.但它是否应该说它应该是2 ^ n-1?
在C++中答案也不同?
我的代码出了什么问题?这是我的代码:
public override string ToString()
{
return String.Format("Number : {0} \nFloors:{1} \nStreet \n{ \nName : {2},\nLength : {3}\n}",Number,Floors,Street.Name,Street.Length);
}
Run Code Online (Sandbox Code Playgroud)