C++数据处理

1.简单变量

  • 信息将存储在哪里。
  • 要存储什么值。
  • 存储何种类型的值。
  • int a=5;//程序找到一块能够存储整数的内存,将该内存单元标记为a,将5复制到该内存单元上。

(1)变量名命名规则:a.在名称中只能使用字母字符、数字和下划线;b.名称的第一个字符不能是数字;c.区别大小写;d.不能将关键字用作名称;e.对名称长度没有限制;f.以两个下划线或下划线和大写字母打头的名称被保留给实现使用。

(2)几个基本概念

  • 宽度用于描述存储整数时使用的内存量,使用内存越多则越宽。
  • 计算机内存的基本单位是位(bit),字节通常指的是8位的内存单元。
  • 自然长度:计算机处理起来效率最高的长度。
  • 初始化,在对变量进行初始化之前,该变量的值是不确定的,是它在被创建之前该内存单元保存的值。
  • 整型常量:显式书写的常量如217和5等。基数通常为10、8、16.不管是什么形式,都被存储为二进制数(以2为基数).
  • 默认情况下c++将整型常量存储为int类型,把浮点数常量存储为double类型。
  • bool类型 预定义false和true为0和1。任何数字值或指针值都可以被隐式转换为bool值,任何非零值都被转换为true。
  • const限定符,应该在声明中对const进行初始化。
  • 有效位:数字中有意义的位。12345有效位有5位,而14000有效位为2位,其他三位只不过是占位符而已。
  • cout<<hex;cout<<oct;

//cout<<hex;和cout<<oct;控制符实际上是一条消息,告诉cout采取何种行为
#include<iostream>
using namespace std;
int main()
{
    using namespace std;
    int chest =42;
    int waist =42;
    int inseam=42;

    cout<<"Monsieur cuts a striking figure!"<<endl;
    cout<<"chest= "<<chest<<" (decimal)"<<endl;
    cout<<hex;//不会再屏幕上显示任何内容,而只是显示cout显示整数的方式
    cout<<"waist= "<<waist<<" hexadecimal"<<endl;
    cout<<oct;
    cout<<"inseram= "<<inseam<<" (octal)"<<endl;
    return 0;
}

(3)int、long、short(有符号和无符号的区别,表示范围) 对类型名如(int)使用操作符sizeof时,应该将名称放在括号中,对变量名使用,则括号名是可选的。

/short int long
#include<iostream>
#include<limits.h>
int main()
{
    using namespace std;
    int n_int=INT_MAX;
    short n_short=SHRT_MAX;
    long n_long=LONG_MAX;

    cout<<"int is "<<sizeof(int)<<" bytes."<<endl;
    cout<<"short is "<<sizeof n_short<<" bytes."<<endl;
    cout<<"long is "<< sizeof n_long<<" bytes."<<endl;

    cout<<"Maximum values:"<<endl;
    cout<<"int: "<<n_int<<endl;
    cout<<"short: "<<n_short<<endl;
    cout<<"long: "<<n_long<<endl;

    cout<<"Minimum int value= "<<INT_MIN<<endl;
    cout<<"Bits per byte= "<<CHAR_BIT<<endl;
    return 0;
}

(4)无符号数 使用unsigned标记

无符号数
/如何使用无符号类型,程序试图超越整型的限制时将产生的结果
//这些整型变量的行为就像里程表,一旦超出了限制,其值将为范围另一端的取值
#include<iostream>
#define ZERO 0
#include<climits>
int main()
{
    using namespace std;
    short sam=SHRT_MAX;
    unsigned short sue=sam;

    cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl;
    cout<<"Add $1 to each account."<<endl<<"Now ";
    sam=sam+1;
    sue=sue+1;
    cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl;
    sam=ZERO;
    sue=ZERO;
    cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl;
    sam=sam-1;
    sue=sue-1;
    cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl;
    cout<<"Lucky sue!"<<endl;
    return 0;
}

无符号数

(5)char类型:字符和小整数

//值的类型引导cout选择如何显示值
//ch实际上是一个整数,因此可以对它使用整数操作
#include<iostream>
int main()
{
    using namespace std;
    char ch=‘M‘;
    int i=ch;
    cout<<"The ASCII code for  "<<ch<<" is "<<i<<endl;

    cout<<"Add one to the character code:"<<endl;
    ch=ch+1;//对ch使用整数操作
    i=ch;
    cout<<"The ASCII code for  "<<ch<<" is "<<i<<endl;
    cout<<"Displaying char ch using cout.put(ch):";
    cout.put(ch);//成员函数调用   通过类对象cout来使用函数put()
    cout.put(‘!‘);
    cout<<endl<<"Done!"<<endl;
    return 0;
}

//cout<<‘$‘;//打印$的ASCII值
//cout.put(‘$‘);//打印字符$

  • char字符实际上是一个整数,可以使用整数操作。
  • 关于成员函数cout.put():通过类对象cout来使用函数put()
  • 转义序列字符如‘\n‘、‘\a‘、‘\b‘等(换行、蜂鸣、退格).

2.浮点数

  • 计算机将浮点数的值分为两部分存储,一部分表示值,另一部分对值进行放大或缩小。它的存储是基于二进制的,因此缩放因子是2.
  • 7.2 e6是非法的,数字和e之间不能有空格。
  • cout.setf(ios_base::fixed,ios_base::floatfield);//这种调用迫使输出使用定点表示法。

float和double类型精度差异
//float和double类型及它们表示数字时在精度方面的差异
//float确保至少有6位有效位,double确保至少有15位有效位
//浮点常量默认为double类型
#include<iostream>
int main()
{
    using namespace std;
    cout.setf(ios_base::fixed,ios_base::floatfield);
    float tub=10.0/3.0;
    double mint=10.0/3.0;
    const float million=1.0e6;

    cout<<"tub= "<<tub;
    cout<<",a milloin tubs= "<<million*tub;
    cout<<",\n and ten million tubs = "<<10*million*tub<<endl;

    cout<<"mint= "<<mint<<" and a million mints = "<<million*mint<<endl;
    return 0;
}

float和double类型精度差异

  • 优点"可以表示整数之间的值,表示范围更大"缺点"运算速度比整数慢,精度降低"

浮点数的优缺点
//浮点数的优缺点
//1.可以表示整数之间的值。2.有缩放因子所以表示值的范围更大
//a、运算速度比整数慢。b、精度降低
#include<iostream>
int main()
{
    using namespace std;
    float a=2.34e+22f;
    float b=a+1.0f;

    cout<<"a= "<<a<<endl;
    cout<<"b-a= "<<b-a<<endl;
    return 0;
}

//程序运行结果b-a的值等于0.  问题在于a的值是一个小数点左边有23位的数字。加上1就是在第23位加1
//但float类型只能表示数字中的前6位或前7位,因此修改第23位对这个数的值不会有影响。

浮点数的优缺点

3.C++算术操作符

(1)基本操作符+、-、*、/、%(要求两个操作数都是整型)

(2)仅当两个操作符被用于同一个操作数时,优先级和结合性规则才有效。同一优先级如2*3+3*4没有指出应该先算哪个乘法。

(3)除法分支:当有操作数为浮点数时,结果也为浮点数。对不同类型进行运算时,C++把它们转换成同一类型。

//c++中的/运算
//在对不同类型进行运算时,把它们转换为同一类型
#include<iostream>
int main()
{
    using namespace std;
    cout.setf(ios_base::fixed,ios_base::floatfield);
    cout<<"Integer  division:9/5= "<<9/5<<endl;
    cout<<"Floating-point division:9.0/5.0= "<<9.0/5.0<<endl;
    cout<<"Mixed division: 9.0/5= "<<9.0/5<<endl;
    cout<<"double constants:1E7/9.0= "<<1e7/9.0<<endl;
    cout<<"float constants:1e7f/9.0f= "<<1e7f/9.0f<<endl;
    return 0;
}

c++中的/运算

(4)类型转换

  • C++中有11种整型和3种浮点类型。
  • C++允许将一种类型的值赋给另一种类型的变量,值将被转变成接受变量的类型。
  • 整型提升和强制类型转换。(typename) value或者typename (value)

//强制类型转换
#include<iostream>
int main()
{
    using namespace std;
    int duks,bats,coots;

    duks=19.99+11.99;                //31.98赋给变量duks时,被截短为31
    bats=(int)19.99+(int)11.99;        //在进行加法运算之前先被截断为19和11,所以变量的值为30
    coots=int(19.99)+int(11.99);

    cout<<"duks= "<<duks<<",bats= "<<bats<<",coots= "<<coots<<endl;
    char ch=‘Z‘;
    cout<<"The code for "<<ch<<" is "<<int(ch)<<endl;//利用强制转换打印字符对应的整数。
    return 0;
}

强制类型转换

时间: 2024-10-02 21:33:33

C++数据处理的相关文章

海量数据处理技术学习

海量数据处理的常用技术可分为: 外排序:因为海量数据无法全部装入内存,所以数据的大部分存入磁盘中,小部分在排序需要时存入内存. MapReduce:分布式处理技术 hash技术:以Bloom filter技术为代表 外排序:主要适用于大数据的排序.去重. 分布式处理技术:MapReduce 技术思想是将数据交给不同的机器去处理,将数据切分,之后结果归约. 举例,统计出一批数据的TOP N 首先可以根据数据值或者数据HASH(MD5)后的值将数据按照范围划分,不同的服务器负责处理各种的数值范围,实

Jquery调用从ashx文件返回的jsonp格式的数据处理实例

开发环境:vs2010+jquery-1.4.min.js 解决问题:网上代码比较少,好多调试不通,返回数据不用json而用jsonp主要考虑解决跨域问题 开发步骤:打开VS2010,新建一web站点,保存位置选择D:\Website1;添加新项,选择一般处理程序,命名cmdHandler.ashx;添加新项,选择HTML页,命名为testAshx.htm;网上下载jquery-1.4.min.js拷贝到web站点中 项目相关网站源码和运行截图如下: 1.testAshx.htm代码如下: <!

Pandas日期数据处理:如何按日期筛选、显示及统计数据

前言 pandas有着强大的日期数据处理功能,本期我们来了解下pandas处理日期数据的一些基本功能,主要包括以下三个方面: 按日期筛选数据 按日期显示数据 按日期统计数据 运行环境为 windows系统,64位,python3.5. 1 读取并整理数据 首先引入pandas库 import pandas as pd 从csv文件中读取数据 df = pd.read_csv('date.csv', header=None) print(df.head(2)) 0 1 0 2013-10-24 3

实时计算,流数据处理系统简介与简单分析

转自:http://www.csdn.net/article/2014-06-12/2820196-Storm 摘要:实时计算一般都是针对海量数据进行的,一般要求为秒级.实时计算主要分为两块:数据的实时入库.数据的实时计算.今天这篇文章详细介绍了实时计算,流数据处理系统简介与简单分析. 编者按:互联网领域的实时计算一般都是针对海量数据进行的,除了像非实时计算的需求(如计算结果准确)以外,实时计算最重要的一个需求是能够实时响应计算结果,一般要求为秒级.实时计算的今天,业界都没有一个准确的定义,什么

开源大数据处理系统/工具大全

本文一共分为上下两部分.我们将针对大数据开源工具不同的用处来进行分类,并且附上了官网和部分下载链接,希望能给做大数据的朋友做个参考.下面是第一部分. 查询引擎 一.Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动. Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的J

数据分析师之Excel数据处理与分析实战

Excel数据处理与分析实战 课程学习地址:http://www.xuetuwuyou.com/course/191 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本门课程详细介绍了 Microsoft Excel 的应用知识,Excel也称为电子表格,是Microsoft office 套装软件的一个重要组成部分.利用它可以进行各种数据的混合运算外,还可以应用于财务会计.统计分析.证券管理.决策管理以及市场营销等众多领域.正因为它具有如此广泛的应用,所以才得

Python爬虫数据处理

一.首先理解下面几个函数 设置变量 length()函数 char_length() replace() 函数 max() 函数1.1.设置变量 set @变量名=值 set @address='中国-山东省-聊城市-莘县'; select @address 1.2 .length()函数 char_length()函数区别 select length('a') ,char_length('a') ,length('中') ,char_length('中') 1.3. replace() 函数

企业级大数据处理方案-02.环境决定需求、性能决定选型

上讲,讲述了大概九种的技术种类以及他们的领域.那么既然有吃饭的,那就必须有做饭的.因此大数据技术结构的选型,必须有的组成部分至少三种(来源.计算.存储) 最简单的数据处理架构: 最少单元的数据处理方案,当然这个不是最好的,为什么呢,问题: 1.流式处理数据(Streaming)时,数据量小时,数据存储到HDFS中,20M或者100K,这种情况是有的.这种计算结果的存储极大浪费了存储空间.HDFS不适用于大批量小文件的存储,(只是不适用,不是不能) 2.数据量大时,数据处理不过来(receiver

Asp.net 面向接口可扩展框架之数据处理模块及EntityFramework扩展和Dapper扩展(含干货)

面向接口数据处理模块是什么意思呢?实际上很简单,就是使用面向接口的思想和方式来做数据处理. 还提到EntityFramework和Dapper,EntityFramework和Dapper是.net环境下推崇最高的两种ORM工具. 1.EntityFramework是微软出的根正苗红的.netd的ORM工具,直接在Vs工具和Mvc框架中集成了,默认生成的项目就是使用EntityFramework的;微软也一直都在维护更新升级,最新版本最新版本都在EF7了.也迁移到了最新的.net Core平台了

Oracle Day05 集合与数据处理

1.集合 --集合操作: 并集.交集.差. select deptno,job,sum(sal) from emp group by deptno,job union select deptno,to_char(null),sum(sal) from emp group by deptno union select to_number(null),to_char(null),sum(sal) from emp; select deptno,job,sal from emp group by ro