c语言中数据类型的范围是根据啥计算的,麻烦详细点.谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中数据类型的范围是根据啥计算的,麻烦详细点.谢谢!相关的知识,希望对你有一定的参考价值。

数据类型的范围都是根据数据占用的内存字节数算的。

例如:
1 如果int在32位操作系统中,那么占用4个字节。
2 4个字节32位。32位什么?当然是bit,bit就是0和1
3 那么int的表示范围就是2的32次方。

其他类推,很容易计算。
那为什么int是32位?呵呵,这个得由寄存器和硬件地址总线所决定。

总结:如果一定要追根到底。
可以说根本上是由硬件决定。
1 硬件决定操作系统可以运行的位数
2 操作系统的位数决定编译器对个类型宽度的定义
3 类型的宽度决定类型的标识范围。
参考技术A 根据这个类型在内存中占的位宽来决定
举个例子,计算级用0和1来描述数据,如果用1个位,只能描述2个数字就是0和1,
如果2个位呢,能藐视4个数字,就是00,01,10,11
依次类推,8位就是2的8次方=256个数
1个字节刚好是8位,char和unsigned char都是占1个字节的,所以描述的范围都是256个,不同的是,char有符号,表示-128-127,unsigned char的范围是0-256
32位windows系统中,unsigned int所占字节是32位
所以范围就是0到2的32次方减1本回答被提问者采纳
参考技术B char就是8bit,范围就是2e8
short就是16 bit,范围就是2e16
int就是32bit,范围就是2e32
long也是32位范围是2e32
这是32位机器上的哈。
浮点数有另外的算法,你可以看看ieee754。

c语言中计算int,float,double,char四种数据类型所能表示的数据范围

int 有符号整数,根据系统(编译器)不同,有不同的范围,16bits系统(DOS系统):-(2^15)到(2^15-1),32bits系统:-(2^31)到(2^31-1),64bits:-(2^63)到(2^63-1)。如果是无符号整数unsigned int,那么16bits系统(DOS系统):0到(2^16-1),32bits:0到(2^32-1),64bits:0到(2^64-1)

float, double是浮点型和双精度型,表示小数,区别是精度不同。
float为单精度浮点型,能准确到小数点后六位,3.4 x 10^(-38)~ 3.4 x 10^(+38)
double为双精度浮点型,能准确到小数点后十二位,1.7 x 10^(-308)~ 1.7 x 10^(+308)

char为单字节字符型,-(2^7)到2^7-1即-128到127。如果是无符号字符unsigned char,那么是0到2^8-1即0到255

希望采纳
参考技术A 整型[signed]int -2147483648~+2147483648
无符号整型unsigned[int] 0~4294967295
短整型 short [int] -32768~32768
无符号短整型unsigned short[int] 0~65535
长整型 Long int -2147483648~+2147483648
无符号长整型unsigned [int] 0~4294967295
字符型[signed] char -128~+127
无符号字符型 unsigned char 0~255
单精度 float 3.4 x 10^(-38)~ 3.4 x 10^(+38)
双精度double 1.7 x 10^(-308)~ 1.7 x 10^(+308)
长双精度 long double 1.7 x 10^(-308)~ 1.7 x 10^(+308)
参考技术B

数据范围:

1、char        1字节   

2、short       2字节   

3、int         4字节   

4、long        4字节   

5、long long   8字节   

6、float       4字节   

7、double      5字节   

8、long double 12字节

参考技术C -- char -2^7 ~ 2^7-1

-- int -2^31 ~ 2^31-1

-- float +/- 3.40282e+038

-- double +/- 1.79769e+308

希望对你有帮助。

以上是关于c语言中数据类型的范围是根据啥计算的,麻烦详细点.谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

c语言中啥是类(class),啥是结构。两者有啥区别?详细点。书上不太清楚。。谢谢

C语言中的int类型的范围是由啥决定的

c语言中的枚举型啥意思

c语言中的枚举型啥意思

C语言中怎么计算一个类型的取值范围?如 char 用程序算

long long 在c语言中是啥类型