c语言中,int、long int 、unsigend long int都是4个字节,其可以用sizeof()函数得出。占用4个字节的整数其最大能表示数的个数是2^32(4个字节共32位)。
int、long int都是带符号整数类型,因此它们能表示的整数范围为-2147483648~2147483647,也就是-2^31~2^31-1。unsigend long int是无符号整数类型,能表示的整数范围是0~4294967295,即0~2^32-1。
同理,short int是2个字节的带符号整数类型,能表示的整数范围是0~65535,即0~2^16-1。
扩展资料:
C语言中,float数据类型的表示范围:
float为单精度浮点数,占4字节,其数值范围为3.4E-38 ~3.4E+38或者-(3.4E-38 ~3.4E+38)。float的指数位有8位,尾数位有23位,符号位1位。于是,float的指数范围为-127~+128,按补码的形式来划分。
@ 浮点类型?
在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到为止使用最广泛的是浮点表示法。相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。
1 .单精度浮点型(float)
单精度浮点型(float )专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当你需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。例如,当表示美元和分时,单精度浮点型是有用的。
这是一些声明单精度浮点型变量的例子:float hightemp,lowtemp;
2 .双精度浮点型(double )
双精度型,正如它的关键字“double ”表示的,占用64位的存储空间。在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。所有超出人类经验的数学函数,如sin( ),cos( ) ,tan()和sqrt( )均返回双精度的值。当你需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是最好的选择。
具体有三种形式:
IEEE754三种浮点数的格式参数
类型 存储位数 偏移值
@ 如何理解浮点型float数据类型在内存中的取值范围根据指数算出来的?
指数不是补码格式的,是使用(始终大于等于0的)移码表示,这样便于比较浮点数的大小。
对于32位二进制小数,指数的范围用移码表示是从0到255。其中,1至254用于表示规格化数,把它减去127,得到真实的指数值(-126至127);255用于表示正、负无穷大;0用于表示0或非规格化数(即绝对值特别小的,在数轴上靠近0的数)。你的错误在于,指数是2^-126至2^127,并非你理解的-128至127。至于相当于10的几次幂,,把它们用对数运算求一下就知道了。iee754对32位二进制小数的格式定义:1符号位 + 8指数位 + 23位尾数(也有叫分数的)
@ 计算机c语言整型变量没有小数点是吗?
对于不确定是整数还是小数类型的变量,可以直接定义为float型。原因如下:如果是整数,则定义为float类型的变量值,只是在整数后面加 .0,如4.0 仍然能表示整数4如果是小数,则定义为float类型的变量值刚好对应小数类型,如3.14如果只定义为整数类型int型,则对于小数就会舍去小数部分,如3.14只取3