数据类型知识点

类型字节数上下限有效位数举例
整型4-231~231-110int i;
长整型8-263~263-119long long i;
单精度浮点型4-3.4e-38~3.4e+388float i;
双精度浮点型8-1.7e-308~1.7e+30816double i;

基本数据类型

整型

(1) 十进制整数

(2) 八进制整数

(3) 二进制整数

(4) 十六进制整数

进制转换

X进制,每一位上的数,在运算时都是逢X进一位。

进位制/位置计数法是一种计数方式,又称进位记数法,位值计数法,用有限的数字符号代表所有的数值。

可使用[数字符号]的数称为基数或[底数],基数为n,即可称n进位制,简称n进制。

例如:

十进制:76(10)

二进制:1101(2)

八进制:0o61

十六进制:2BC

十进制转换二进制,数值除以2,所得的余数,从下往上,写出来。

浮点型

浮点数就是小数,包括:float(单精度浮点型)和double(双精度浮点型),大多数场合使用double表示浮点数,double类型的精度值是float类型的两倍。

浮点型数据直接赋值,通常写法:3.14、314、0.1、.5;

科学计数法:1.25e2、1.25e2、1.25e-2;

设置输出浮点数时,需要导入头文件,再设置保留的位数。

cout << fixed; 按照一般小数形式输出

cout << fixed << setprecision(2) << c << endl;

setprecision(2) 设置小数精度,括号中的数字表示保留的小数位数。

例如:

#include<iostream>

#include<iomanip>

using namespace std;

int main(){

inta=40,b=39;

cout<<fixed<<setprecision(2) <<1.0*b/a<<endl;

cout<<fixed<<setprecision(2) <<100.0*b/a<<"%"<<endl;

return0;

}

运行结果:

0.97

97.50%

字符型

类型字节数范围举例
字符型1-128~127char i;

字符型常量,例如:‘a’ ,‘A’,‘5’,‘#’

字符型变量

声明:

char i; //指定变量i为char型

char n = ‘a’; //指定变量n为char型,并把n初始化为‘a’

1、字符常量只能用单引号括起来,不能用双引号或其他括号。例如:‘A’, ‘&’;

2、字符常量只能是单个字符,不能是字符串。错误写法:‘ABC’

3、字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5 是不同的。'5'是字符常量,不能参与运算。

将一个字符存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,是将该字符相应的ASCII码存放到单元中。

字符串

字符串数值简称字符串,是使用一对双引号括起来的字符序列。

(1) 字符由单引号括起来,字符串由双引号括起来。

(2) 字符只能是单个字符,字符串则可是零个或多个字符。

(3) 字符占一个字节的内存空间,字符串占内存字节数等于字符串的长度加1。系统自动在字符串末尾添加'\0'作为结束标记。

布尔型

true 和 false(真与假)

一般先计算关系运算符,然后将运算结果保存到bool变量c中。

bool类型变量只有两种结果,false和true,对应0和1

任何一个非零的数字,在bool类型中都是1(true)

只有数字0,在bool变量中是false(输出0)

类型转换

隐式类型转换

从小类型到大类型可自动完成转换

例如:

char a = ‘a’; short b = 3; int c = 100; long long d = 240; double e = 3.12345; cout << a + b << endl; //100 cout << c + d << endl; //340 cout << d + e << endl; //243.123 cout << e + a << endl; //100.123

强制类型转换

方法1:(数据类型) 变量或表达式

方法2:数据类型 (变量或表达式)

例如:

float a = 3.14;

(int) a;

int (a+b);

int (a)+b;

a = 3?

拓展

字符编码ascll码

每一个字符都对应了一个整数值

“a - z”对应的是97 - 122

“A - Z”对应的是65 - 90

字符‘0’-‘9’对应的是48 - 57

小写英文字母比大写的ascll码大32.

例如:

#include<iostream>

usingnamespacestd;

intmain()

{

charc1='a';

charc2='A';

cout<<c1<<endl;

cout<<c2<<endl;

return0;

}

运行结果:

a

A

setw()函数

用于设置字段的宽度。

例如:

#include<iostream>

#include<iomanip>

using namespace std;

int main(){

cout<<setw(8) <<"abc"<<endl;

cout<<setw(5) <<"abcde"<<endl;

cout<<"abcds"<<setw(14) <<"abcdefg"<<endl;

return0;

}

运行结果:

abc

abcde

abcds abcdefg

当后面紧跟着的输出字段长度小于n的时候,在该字段前面用空格补全。

当输出字段长度大于n时,全部整体输出。

setfill()函数

用于设置其他字符填充

例如:

#include<iostream>

#include<iomanip>

using namespace std;

int main(){

cout<<setfill('*') <<setw(8) <<"abc"<<endl;

cout<<setfill('&') <<setw(15) <<"abcde"<<endl;

cout<<"abcds"<<setfill('#') <<setw(14) <<"abcdefg"<<endl;

return0;

}

运行结果:

*abc

&&&&&&&&&&abcde

abcds#######abcdefg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值