64位系统下C语言中int值的取值范围

RT,请问我用的是64位的操作系统,按理说int值的取值范围应为-9223372036854775808到9223372036854775807啊。但是为什么我的测试结果... RT,请问我用的是64位的操作系统,按理说int值的取值范围应为-9223372036854775808到9223372036854775807啊。但是为什么我的测试结果却是32位系统的长度? 展开
 我来答
小星星教育知识分享
高粉答主

2019-11-29 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67136

向TA提问 私信TA
展开全部

64位机器中,int占32位,取值范围为-2147483648~2147483647(-2^32~2^32-1)。

int类型的情况:

shortint类型可能占用比int类型更少的存储空间,C保证short类型至少16位长,用于只需小数值的场合以节省空间。

longint类型(或简写为long类型)可能占用比int类型更多的存储空间,C保证short类型至少32位长,用于使用大树枝的场合。

longlongint类型(或简写为longlong类型)可能占用比long类型更多的存储空间,C保证short类型至少64位长,用于使用更大数值的场合。

扩展资料

C语言的整型溢出问题int

int为4字节32位,其中首位用0表示正数,用1表示为负数。因此对于

最大正数可以表示为:0x7fffffff(7的二进制为0111,f二进制为1111)

最大负数(-1)可以表示为:0xffffffff

最小负数可以表示为:0x80000000(8的二进制为1000)

负数为正数的源码取反码再取补码,过程如下:

1、-1的原码:10000000000000000000000000000001

2、得反码:11111111111111111111111111111110

3、得补码:11111111111111111111111111111111

kaixingui2012
推荐于2016-07-29 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6427万
展开全部
64位系统下C语言中int还是占4字节,32位,与32位系统中没有区别!

64位系统下,采用64位编译器进行编译处理时,发生变化的变量类型是:long。
32位系统下,long占4字节,32位,与int相同。
64位系统下,long占8字节,64位,有符号数取值范围:-9223372036854775808至9223372036854775807
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bjxyz
推荐于2018-02-27 · TA获得超过2900个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:421万
展开全部
其实这个int的字长和数据总线的宽度是没有必然关系的
在你的编译环境下#include <limits.h>
然后打开limits.h 你就能看到各个数据类型的范围了
我用的TI 28035DSP编译器中char还是16位的呢
更多追问追答
追问
嗯,我明白了,不过貌似修改limits.h中的取值范围并不会影响到程序的执行结果
追答
额,改那个没用的,就像电器上贴的铭牌,你把1kw涂改成2kw,电器还是1kw
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heptnaol
2014-11-25 · TA获得超过7262个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1817万
展开全部
系统是64位,int未必就是64位,这还取决于编译环境。
可能你的VS还是32位的?
使用long 或者long long试试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式