C++之short, int, long, long long, double等范围

本文详细介绍了各种数据类型的取值范围及其在内存中所占的字节数,包括整型、浮点型、字符型和布尔型等。通过具体数值展示,帮助读者理解不同数据类型在计算机内存中的存储方式。

1byte = 8bit

  1. short-----------------------[-2^15,     2^15-1]---------------------------------------------2 byte
  2. int--------------------------[2^31,      2^31-1]--------------------------------------------4 byte
  3. long------------------------[-2^31,     2^31-1]--------------------------------------------4 byte
  4. long long-------------------[-2^63,    2^63-1]--------------------------------------------8 byte
  5. unsigned char--------------[0,            2^8-1]-----------------------------------------------1 byte
  6. singned char---------------[-2^7,       2^7-1]-----------------------------------------------1 byte
  7. bool------------------------[0,             1]-----------------------------------------------------1 byte
  8. float------------------------(1.17549e-038)~(3.40282e+038)------------------------------4 byte
  9. double---------------------(2.22507e-308)~(1.79769e+308)------------------------------8 byte

 

 

 

 

### 数据类型定义与用法 在CC++编程语言中,`double`、`int`、`short`、`float` `long` 是基本的数据类型,用于存储不同范围精度的数值。以下是这些数据类型的定义、用法以及区别: #### 1. **`int` 类型** `int` 是一种整数类型,用于存储带符号的整数值。其大小取决于编译器目标平台,但通常为4字节(32位)。 - 范围:在32位系统上,`int` 的取值范围为 -2,147,483,648 到 2,147,483,647[^3]。 - 用法:适用于一般的整数计算,例如循环计数器或数组索引。 ```c int a = 10; ``` #### 2. **`short` 类型** `short` 是一种较短的整数类型,通常占用2字节(16位)。它主要用于节省内存空间时的整数存储。 - 范围:-32,768 到 32,767[^3]。 - 用法:适合存储较小的整数值。 ```c short b = 500; ``` #### 3. **`long` 类型** `long` 是一种较大的整数类型,通常占用4字节(32位)或更多。在某些平台上,`long` 可能占用8字节(64位)。 - 范围:在32位系统上为 -2,147,483,648 到 2,147,483,647,在64位系统上可能更大[^3]。 - 用法:当需要处理较大的整数值时使用。 ```c long c = 1000000L; ``` #### 4. **`float` 类型** `float` 是一种单精度浮点数类型,通常占用4字节(32位)。它用于存储带有小数部分的数值。 - 范围:大约 ±3.4e±38,精度约为6到7位十进制数字[^1]。 - 用法:适用于对精度要求不高的科学计算或图形处理。 ```c float d = 3.14f; ``` #### 5. **`double` 类型** `double` 是一种双精度浮点数类型,通常占用8字节(64位)。它提供了更高的精度更大的数值范围。 - 范围:大约 ±1.7e±308,精度约为15到16位十进制数字。 - 用法:适用于需要高精度的科学计算或金融应用。 ```c double e = 2.71828; ``` #### 6. **无符号类型** 每种整数类型都可以声明为无符号类型(`unsigned`),这意味着它们只能存储非负值,但范围会加倍[^4]。 ```c unsigned int f = 4294967295U; // 最大值为 2^32 - 1 ``` ### 数据类型的区别 | 类型 | 大小(字节) | 范围 | 精度 | 用途 | |-----------|--------------|-------------------------------|------------|--------------------------| | `int` | 4 | -2,147,483,648 到 2,147,483,647 | 整数 | 一般整数计算 | | `short` | 2 | -32,768 到 32,767 | 整数 | 小整数存储 | | `long` | 4 或 8 | 平台相关 | 整数 | 大整数计算 | | `float` | 4 | ±3.4e±38 | 约6-7位 | 单精度浮点数 | | `double` | 8 | ±1.7e±308 | 约15-16位 | 双精度浮点数 | ### 示例代码 以下是一个简单的代码示例,展示如何定义使用这些数据类型: ```c #include <stdio.h> int main() { short s = 32767; int i = 2147483647; long l = 9223372036854775807L; float f = 3.14f; double d = 2.71828; printf("short: %hd\n", s); printf("int: %d\n", i); printf("long: %ld\n", l); printf("float: %.2f\n", f); printf("double: %.5f\n", d); return 0; } ``` ### 隐式类型转换规则 在表达式中,如果操作数的类型不同,编译器会自动进行隐式类型转换以确保运算的一致性。例如,当一个 `int` 一个 `float` 相加时,`int` 会被转换为 `float`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值