int,long long,double,float等的范围和精度

本文详细介绍了C/C++中各种数据类型的位数与取值范围,对比了int、short、long等整型及unsigned整型的区别,并深入探讨了float、double、long double的精度差异,指导开发者在不同场景下选择合适的数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

名称 全称类型说明符 缩写类型说明符 位数 范围

整型 int int 16位 -32768至+32767

无符号整型 unsigned int unsigned 16位 0 至 65,535

短整型 short int short 16位 -32768至+32767

无符号短整型 unsigned short int unsigned short 16位 0 至 65,535

长整型 long int long 32位 -2,147,483,648 至 2,147,483,647( -2^63 ~ 2^63-1)

无符号长整型 unsigned long int unsigned long 32位 0至4,294,967,295

double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,在不确定的情况下还是尽量用double以保持正确性.

类型 比特数 有效数字 数值范围
float 32 6-7 -3.410(-38)~3.410(38)
double 64 15-16 -1.710(-308)~1.710(308)
long double 128 18-19 -1.210(-4932)~1.210(4932)

作者:LOI_Q
来源:优快云
原文:https://blog.youkuaiyun.com/LOI_Q/article/details/78399133
版权声明:本文为博主原创文章,转载请附上博文链接!

以下是 C/C++ 中 `int`、`float`、`double`、`long` `long long` 的取值范围说明。需要注意的是,确切的范围可能取决于系统的字长(如 32 位或 64 位)。以下是常见的理论范围: --- ### 1. **int** - 类型:带符号整数 - 占用空间:通常为 4 字节(32 位) - 取值范围: ``` [-2^31, 2^31 - 1] = [-2,147,483,648, 2,147,483,647] ``` --- ### 2. **float** - 类型:单精度浮点数 - 占用空间:4 字节(32 位) - 取值范围: ``` 最小正正规化值 ≈ 1.17549e-38 最大值 ≈ 3.40282e+38 精度:约 7 位十进制数字 ``` --- ### 3. **double** - 类型:双精度浮点数 - 占用空间:8 字节(64 位) - 取值范围: ``` 最小正正规化值 ≈ 2.22507e-308 最大值 ≈ 1.79769e+308 精度:约 15-16 位十进制数字 ``` --- ### 4. **long double**(注意并非所有编译器支持此类型的标准一致) - 类型:扩展精度浮点数 - 占用空间:通常为 10 或 12 字节(某些平台上可能是 16 字节) - 取值范围精度依平台而异 --- ### 5. **long** - 类型:带符号整数 - 占用空间:通常是 4 字节(32 位),但在 64 位系统上也可能是 8 字节。 - 如果是 4 字节,则取值范围同 `int` ``` [-2,147,483,648, 2,147,483,647] ``` - 如果是 8 字节,则取值范围同 `long long` --- ### 6. **long long** - 类型:更大的带符号整数 - 占用空间:通常是 8 字节(64 位) - 取值范围: ``` [-2^63, 2^63 - 1] = [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807] ``` --- #### 特别提醒 对于非常规类型的讨论例如“double double”并不是标准 C++ 数据类型的一部分。“Double Double”是一种数学库技术术语用于通过组合两个 double 值提高计算精度,并不是直接的语言特性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值