为什么Int32的最大值为0x7FFFFFFF? [英] Why is Int32's maximum value 0x7FFFFFFF?

查看:690
本文介绍了为什么Int32的最大值为0x7FFFFFFF?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在MSDN文档中看到 Int32的最大值是2,147,483,647 ,十六进制0x7FFFFFFF.

I saw in MSDN documents that the maximum value of Int32 is 2,147,483,647, hexadecimal 0x7FFFFFFF.

我认为,如果它是Int32,则应存储最终应为4,294,967,295和十六进制0xFFFFFFFF的32位整数值.

I think, if it's Int32 it should store 32-bit integer values that finally should be 4,294,967,295 and hexadecimal 0xFFFFFFFF.

我的问题是为什么Int32存储31位整数值?

My question is why Int32 stores 31-bit integer values?

推荐答案

这是因为它是一个带符号的整数.一个无符号的32位整数为您提供期望的值.

It's because it's a signed integer. An unsigned 32-bit integer give you the value you expect.

查看此MSDN页面- http://msdn.microsoft.com/zh-CN/library/exx3b86w(v=vs.80).aspx

Check out this MSDN page - http://msdn.microsoft.com/en-us/library/exx3b86w(v=vs.80).aspx

要详细了解为什么这样做,请查看Jackson Popes答案中与Two的补数表示形式有关的链接.

For a more in depth explanation on why this is check out the link in Jackson Popes answer related to Two's Complement number representation.

还有一些进一步阅读.

这篇关于为什么Int32的最大值为0x7FFFFFFF?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆