【C语言】int类型整数取值范围的缘由

农民  论坛元老 | 2024-10-29 07:24:48 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1587|帖子 1587|积分 4761

有符号整形int 32位:(可存储的空间)
最小值原码为 0000 0000 0000 0000 0000 0000 0000 0001 = 1
最大值原码为 0111 1111 1111 1111 1111 1111 1111 1111 = 2147483647
此中,最高位为符号位,正数表示 0;负数表示 1;
-1的取值范围为:
最大值:
原码:1000 0000 0000 0000 0000 0000 0000 0001
反码:1111 1111 1111 1111 1111 1111 1111 1110
补码(+1):1111 1111 1111 1111 1111 1111 1111 1111
最小值:
原码:1111 1111 1111 1111 1111 1111 1111 1111
反码:1000 0000 0000 0000 0000 0000 0000 0000
补码(+1):1|1000 0000 0000 0000 0000 0000 0000 0001(最高位溢出,所以不取)
最小的负数取值为:-2147483647
在二进制中,
+0的原码:0000 0000 0000 0000 0000 0000 0000 0000
-0的原码:1000 0000 0000 0000 0000 0000 0000 0000
而0没有正负之分,因此,-0被存储在某位的空间中:-2147483648
因此,带符号位的int类型存储空间为 [-2147483648,2147483647]
无符号的情况下,32位的整型 unsigned int 取值范围为:

如图所示,无符号位的int类型存储空间为 [0,4294967295]
这便是数据类型的取值范围的由来。
以上。
我是一个非常热爱技术的程序员,渴望这篇文章能够对您有帮助,也渴望认识更多热爱程序开发的小伙伴。
感谢!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农民

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表