C++处理数据

1.简单变量

1.C++命名规则:
·在名称中只能使用字母字符,数字和下划线(_)
·名称的第一个字符不能是数字
·区分大写字符和小写字符
·不能将C++关键字用作名称
·以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
·C++对于名称的长度没有限制,名称中所有的字符都有意义,但有些平台有长度限制。

2.整型

C++的基本整型(按宽度递增的顺序排列)分别是 char,short,int,long和C++11 新增的long long,其中每种类型都有符号版本和无符号版本版本,因此总有10种类型可供选择。

每种类型的取值范围中,负值和正值几乎相同,16位的int的取值范围为:-32768到+32767

sizeof指出,在使用8位字节的系统中,int的长度为4个字节
在这里插入图片描述

C++11初始化方式:
int emus={24};
int emus{24};
int rocs={}或int rocs{},大括号内不包含任何东西,这种情况下,变量将被初始化为0:

4种整型都有一种不能存储负数值的无符号变体,其优点是可以增大变量能够存储的最大值。例如,如果short表示的范围为-32768到+32767,则无符号版本的表示范围0-65535.
当然,仅当数值不会为负时才应使用无符号类型,如人口,粒数。要创建无符号版本的基本整型,只需要使用关键字 unsigned来修改声明即可:

在这里插入图片描述
整型变量的行为就像一个里程表,如果超越了限制,其值将为范围另一端的取值,例如: 当short最大值为32767, 32767+1 会变成 -32768 。C++确保了无符号类型的这种行为;但C++并不保证符号整型超越限制(上溢和下溢)时不出错,而这正是当前实现中最为常见的行为。

如果知道变量可能表示整数值大于16位整数的最大可能值,则使用long。即使系统上int为32位,也需要这样做(为了兼容问题),如果存储的值超过20亿,则可以使用long long。

const比#define好,首先,他能明确指定类型,其次,可以使用C++的作用域规则将定义限制在特点的函数或文件中

3.浮点数

书写浮点数的方法:
1.直接书写的方法:

2.表示浮点值的方法叫做E表示法,例如:3.45E6指的是3.45和1000000相乘的结果;(E表示法最适合非常大和非常小的数),E表示法确保数字以浮点格式存储,即使没有小数点。E也可以变成e,指数可以是正数也可以是负数,数字中不能有空格。

浮点类型: float,double,long double,C和C++对有效位数的要求是:float至少32位,double至少48位,且不少于float,long double 至少和 double一样多。这是那种类型的有效位数可以一样多,然而通常,float为32位,double为64位,long double 为80,96,128位,另外,这三种类型的指数范围至少是-37到37.

cout会删除结尾的0.例如将3333333.250000显示为3333333.25。调用cout.setf()将覆盖这种行为
float的精度比double低

4.浮点常量
在默认情况下像8.24和8.24E8这样的浮点常量都属于double类型,如果希望常量为float类型,请使用F或f后缀,对于long double类型,可使用l或L后缀(L更好,因为l看起来像数字1)
在这里插入图片描述
浮点数的优缺点:与整数想必,浮点数有两大优点。首先,他们可以表示整数之间的值。其次,由于有缩放因子,他们可以表示的范围大得多。另一方面,幅度按运算的速度通常比整数运算慢,切精度将降低。

5.类型转换

将一种算数类型的值赋给另一种算数类型的变量时,C++将对其值进行类型转换;
表达式中包含不同类型时,C++将对值进行转换;
将参数传递给函数时,C++将对其值进行转换。

将一个值赋给值取值范围更大的类型通常不会导致什么问题,例如将short值赋给long变量并不会改变这个值,只是占用的字节更多而已,然而将很大的long的值赋给float变量将降低精度,因为float只有6位有效数字,因此这个值奖杯四舍五入为2.11122E9.
在这里插入图片描述
列表初始化不允许缩窄,即变量类型可能无法表示赋给它的值,例如不允许将浮点型转换为整型

在这里插入图片描述

有符号整型按级别从高到低依次为:
long long,long,int,short,signed char。
无符号整形的排序顺序与有符号整型相同。

强制类型转换的通用格式:
(typeName) value ;
typeName(value);

第一种格式来自C语言,第二种格式是纯粹的C++

C++11中的auto声明

C++11新增了一个工具,让编译器能够根据初始值的类型推断变量的类型。为此,它重新定义了auto的含义。auto是C语言关键字,但是很少用,在初始化声明中,如果使用关键字auto,而不指定变量的类型,编译器将把变量的类型设置成与初始值相同:

auto n = 100; //n is int
auto x =1.5; /// x is double
auto t = 1.3e12L // y is long double

总结

C++的基本类型分为两组: 一组有存储为整数的值组成,另一组有存储为浮点格式的值组成,整型之间通过存储值时使用的内存量及有无符号来区分。

整型从小到大依次为
bool,char,signed char ,unsigned char,short,unsigned short,int,unsigned int,long,unsigned,以及C++11新增的long long, unsigned long long

浮点类型可以表示小数值以及比整型能够标示顿值大得多的值。3中浮点类型分别是float,double,long double。C++确保float不比double长,double不比long double长,通常,float使用32位内存,double使用64位内存,long double 使用80-128位

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值