数据类型

子淼
发布于 2024-01-30 / 54 阅读
0
0

数据类型

C++数据类型

数据

分类

关键字

整型

短整形

short

整形

int

长整形

long long

浮点型

单精度

float

双精度

double

字符型

 

char

布尔型

bool

1.整型

1.1 短整型

short,短整型,占用2个字节,取值范围是-2^15 ~ 2^15-1, 数值大小是 -32768~32767

1.2 基本整型

int,基本整型,占用4个字节,取值范围是-2^31 ~ 2^31-1, 数值大小是 -2147483648 ~ 2147483647

1.3 长整型

long long,长整型,占用8个字节,取值范围是-2^63 ~ 2^63-1, 数值大小是 -9223372036854775808 ~ 9223372036854775807 (19位数)

2.浮点型

2.1 如果你是初学者记住下面这句话

浮点型统一使用double

 

2.2 如果想要深入研究看下面

2.2.1范围

类型

占字节

一共位数

符号位

指数位

尾数位

float

4

32

1

8

23

double

8

64

1

11

52

float和double的范围是由指数的位数来决定的。

float的指数位有8位,float的指数范围为-128 ~ 127

float的范围为-2^128 ~ 2^127,也即-3.40E+38 ~ +3.40E+38

double的指数位有11位,double的指数范围为-1024 ~ 1023

double的范围为-2^1024 ~ +2^1023,也即-1.79E+308 ~ +1.79E+308

 

2.2.2精度

float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的。

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位

 

2.2.3计算方法

符号S

指数位E

尾数位F

S = 1 or -1

浮点型的值 = S F 2^E

3.字符型 char

char,字符型,占1个字节,可以存储单个字符,如'a','!','1'(必须用单引号括起来)。char类型中存放字符的是ASCII码,因此字符型变量可以转化尾整数,取值范围是-128~127。

ASCII码表

4.布尔型 bool

bool,布尔型,用于表示真、假逻辑值,占用1个字节。可以用整数对bool类型变量赋值,赋0值即为false,非0值即为true。

5.不同数据类型转换

5.1 隐式转换(默认情况下的计算规则)

小类型和大类型做计算,结果为大类型。

#include<iostream>
using namespace std;
int main(){
  // int 和 int 结果为 int
  cout << 10/3 << endl; //输出 3
  // int 和 double 结果为 double
  cout << 10/3.0 << endl; // 输出 3.33333
  // char 和 int 结果为 int
  cout << 'a'+1 << endl; // 输出 98
  // char 和 double 结果为 double
  cout << 'a'+1.1 << endl; // 输出 98.1 
  return 0;
}

5.2 强制转换

通过代码要求结果变为某种类型

#include<iostream>
using namespace std;
int main(){
  double a=3.5,b=3.6;
  cout << int(a+b) << endl;// 输出 7
  cout << (int)a+b << endl;// 输出 6.6
  int c = 97;
  cout << char(c) << endl;// 输出 a
  return 0;
}


评论