c语言的int型数据范围和内存中存储详细解释!
我是刚学习c语言,请问int型数据的“取值范围和字节数和内存中存储的形式和有符号无符号”,这些望高手帮我解释清楚一点,书上说的有点听不懂,高手帮我一一解释一下,不甚感谢...
我是刚学习c语言,请问int型数据的“取值范围和字节数和内存中存储的形式和有符号无符号”,这些望高手帮我解释清楚一点,书上说的有点听不懂,高手帮我一一解释一下,不甚感谢
展开
展开全部
字节数: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
至于内存中存储的形式不清楚你的意思,请说具体一点
无符号和有符号:有时候人们需要存储的整数可正可负,这时候就要用有符号的整型存储,也是默认的int类型;有时候只要存储自然数,那么就可以用无符号整型存储,也就是unsigned int,也可以写成unsigned
取值范围:对于n个字节的无符号整型其取值范围为0~2^(n*8)-1,对于n个字节的有符号整型其取值范围为-2^(n*8-1)~2^(n*8-1)-1
至于内存中存储的形式不清楚你的意思,请说具体一点
展开全部
int型为带符号整数类型,对于16位编译器,int占2字节8位;对于32位和64位编译器,int型占4字节32位。
不同的占用空间,int型的范围也不同。
2字节时,int 范围为-32768~32767.
4字节时,int范围为-2147483648~2147483647
无论是哪种存储方式,均是最高位为符号位,0代表正数,1代表负数。
剩余位存储实际值。
不同的占用空间,int型的范围也不同。
2字节时,int 范围为-32768~32767.
4字节时,int范围为-2147483648~2147483647
无论是哪种存储方式,均是最高位为符号位,0代表正数,1代表负数。
剩余位存储实际值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呃,int类型就弄得这么纠结了。
简单来说就是存整数的数据类型呗,有位有符号无符号就是可以存正数或者负数。
取值范围就 -2^31~2^31-1。。。不过一般不会超。。也不用太在意去管,如果太大了编译器会提示的。。。
一般人也不会取到超过范围,INT够用了。。。。除非是那种科学计算。。。
真担心楼主以后遇到OOP或者C#的接口,或者是委托怎么办啊?
不用管太细,会用就好。。
管太细那些是学霸考试用的,考试考得再好不代表能写出程序来。。
简单来说就是存整数的数据类型呗,有位有符号无符号就是可以存正数或者负数。
取值范围就 -2^31~2^31-1。。。不过一般不会超。。也不用太在意去管,如果太大了编译器会提示的。。。
一般人也不会取到超过范围,INT够用了。。。。除非是那种科学计算。。。
真担心楼主以后遇到OOP或者C#的接口,或者是委托怎么办啊?
不用管太细,会用就好。。
管太细那些是学霸考试用的,考试考得再好不代表能写出程序来。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个int型数据一般有4个字节,也就是有4*8=32位,单单用这32位,可以表达2^32-1个数。
什么叫做有符号和无符号数据,那就是看一个数字里,有没有1位是用来表达正负号的。
有符号int,有一位用来表达正负号了,可以用的只有31位,他的值域,就在-2^31~2^31-1了。
无符号,可用32位,值域是0~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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询