c语言的int型数据范围和内存中存储详细解释!

我是刚学习c语言,请问int型数据的“取值范围和字节数和内存中存储的形式和有符号无符号”,这些望高手帮我解释清楚一点,书上说的有点听不懂,高手帮我一一解释一下,不甚感谢... 我是刚学习c语言,请问int型数据的“取值范围和字节数和内存中存储的形式和有符号无符号”,这些望高手帮我解释清楚一点,书上说的有点听不懂,高手帮我一一解释一下,不甚感谢 展开
 我来答
周文剑eric
2013-12-11 · 超过10用户采纳过TA的回答
知道答主
回答量:19
采纳率:0%
帮助的人:25.1万
展开全部
字节数:int型的位数一开始和操作系统的位数一样,而1字节=8位,所以字节数一般是(操作系统位数/8),但64位系统中由于人们已经习惯int占32位,所以int型字节数如下:16位下2字节,32位和64位下4字节
无符号和有符号:有时候人们需要存储的整数可正可负,这时候就要用有符号的整型存储,也是默认的int类型;有时候只要存储自然数,那么就可以用无符号整型存储,也就是unsigned int,也可以写成unsigned
取值范围:对于n个字节的无符号整型其取值范围为0~2^(n*8)-1,对于n个字节的有符号整型其取值范围为-2^(n*8-1)~2^(n*8-1)-1
至于内存中存储的形式不清楚你的意思,请说具体一点
风若远去何人留
2015-12-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450116
专业C/C++软件开发

向TA提问 私信TA
展开全部
int型为带符号整数类型,对于16位编译器,int占2字节8位;对于32位和64位编译器,int型占4字节32位。
不同的占用空间,int型的范围也不同。
2字节时,int 范围为-32768~32767.
4字节时,int范围为-2147483648~2147483647

无论是哪种存储方式,均是最高位为符号位,0代表正数,1代表负数。
剩余位存储实际值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
舒拿达e2d2
2013-12-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3727
采纳率:73%
帮助的人:684万
展开全部
呃,int类型就弄得这么纠结了。

简单来说就是存整数的数据类型呗,有位有符号无符号就是可以存正数或者负数。

取值范围就 -2^31~2^31-1。。。不过一般不会超。。也不用太在意去管,如果太大了编译器会提示的。。。

一般人也不会取到超过范围,INT够用了。。。。除非是那种科学计算。。。

真担心楼主以后遇到OOP或者C#的接口,或者是委托怎么办啊?

不用管太细,会用就好。。

管太细那些是学霸考试用的,考试考得再好不代表能写出程序来。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iamchenmin
2013-12-11 · TA获得超过1199个赞
知道小有建树答主
回答量:625
采纳率:50%
帮助的人:310万
展开全部
一个int型数据一般有4个字节,也就是有4*8=32位,单单用这32位,可以表达2^32-1个数。
什么叫做有符号和无符号数据,那就是看一个数字里,有没有1位是用来表达正负号的。
有符号int,有一位用来表达正负号了,可以用的只有31位,他的值域,就在-2^31~2^31-1了。
无符号,可用32位,值域是0~2^32-1
追问
你的意思是说无符号的数据类型他的32位都可以用是吗?那为什么要减一呢
追答
无符号的int型数据,他的所有位都是用来表示数值的,没有用于表示符号的位。

减一的原因:
1111 1111 1111 1111=(2^16-1)
1111 1111 1111 1111 1111 1111 1111 1111=(2^32-1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式