我在MSDN文档中看到,最大值Int32是2,147,483,647十六进制0x7FFFFFFF.
http://msdn.microsoft.com/en-us/library/system.int32.maxvalue.aspx
我认为,如果它Int32应该存储32位整数值,最终应该是4,294,967,295十六进制0xFFFFFFFF.
我的问题是为什么Int32存储Int32位整数值?
Llo*_*oyd 34
这是因为它是有符号整数.无符号的32位整数为您提供所期望的值.
查看此MSDN页面 - http://msdn.microsoft.com/en-us/library/exx3b86w(v=vs.80).aspx
为了更深入地解释为什么要查看这一点,Jackson Popes中的链接回答与Two的补语数字表示有关.
还有一些进一步阅读.
小智 6
Int32和Int64都是有符号的,因此它们可以处理从-capacity/2到(capacity/2)-1(对于零)的整数值,这就是为什么最大值不是您期望的值.但是你可以通过使用unsigned int得到你想要的东西只有正数.
您没有考虑负数。
Int32有迹象。
从MSDN:http://msdn.microsoft.com/en-us/library/system.int32.minvalue.aspx
的MinValue是-2,147,483,648; 即十六进制0x80000000。