第二、三章 开始学习C++、数据处理

第二章

main()函数:

  • 通常main()被启动码调用,而启动码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。
  • main()函数在返回时没有遇到返回语句,则默认以
return 0

结尾。

C和C++有一项不同寻常的特征——可以连续使用赋值运算符。(Python也可以)

第三章

整形:

  • short 至少16位
  • int     至少比short长
  • long  至少32位
  • long long 至少64位

sizeof (int)返回类型的长度,sizeof VAR返回变量的长度,可选括号。

climits定义了符号常量来表示类型的限制。

C++允许初始化语句:

int wrens(432)

申明的变量不赋值,将会指向一个不确定的值。

整形字面值:

  • 第一位为1~9,十进制
  • 第一位为0,8进制
  • 第一位为0x/0X,十六进制

cout对象默认输出转为十进制。

头文件iostream提供了控制符endl(换行)、dec(十进制)、hex(十六进制)、oct(八进制)。

int A = 0x42;
cout << hex;
cout << A;

int被设置为目标计算机的自然长度

C++默认将整型常量(不是太大)存储为int类型(除非有后缀:l/L, u/U(无符号整形), LU, C++11(LL,ULL)(注:不区分大小写))。

十进制与十六进制/八进制默认存储不同:

对于不带后缀的十进制整数,用能够存储该整数的最小类型存储(int, long, long long)

对于不带后缀的十六进制或八进制整数使用(int, unsigned int, long, unsigned long, long long, unsigned long long)

char 类型:

避免控制台输出后秒退:

1. cin.get()

2. system("pause")

一个历史遗留问题:

为什么会有cout.put()函数?

C++ Release 2.0之前cout将字符变量显示为字符,而字符常量显示为数字(存储为int类型)。

char ch = ‘M‘;

常量‘M’中复制8位(左边8位)到ch中。

可以基于字符的8进制或16进制ASCII编码来使用转义序列。

cin和cout将输入和输出看作是char流,因此不适合处理wchar_t类型,iostream头文件的最新版本提供了wcin和wcout,可用于处理wchar_t流(L作为前缀)。

浮点数:

单精度或双精度在存储中,都分为三个部分:

符号位 (Sign):0代表正数,1代表为负数;

指数位 (Exponent):用于存储科学计数法中的指数数据;

尾数部分 (Mantissa):采用移位存储尾数部分;

浮点常量默认为double类型,后缀f表示单精度,后缀L表示long double。

【以下内容取自网络】

单精度 float 的存储方式如下:

8.5,用二进制的科学计数法表示为:1.0001*

按照上面的存储方式,符号位为:0,表示为正,指数位(移码)为:3+127=130 ,位数部分为,故8.25的存储方式如下图所示(IEEE754浮点数编码):

双精度 double 的存储方式如下:

阶码的移码的偏移量为127,一般的移码为符号位取反的补码(即偏移量为128)。

为什么要用移码?

方便计算机浮点数大小的比较。

阶码的移码的偏移量为127?

因为阶码的0000 0000和1111 1111都有特殊用途,因此阶码的移码取值范围限定为1~254,偏移量为128的话,原码0111 1111(127)溢出。

阶码原码的取值范围?

原码为1111 1111(-127)时,偏移量为127时移码明显会产生下溢;补码1000 0000为-128的补码,加127的偏移时依然会产生下溢。因此阶码原码的取值范围为-126~127。

IEEE754浮点数的取值范围?

1*(2)^(-126) ~ 2*(2)^127(1.111 1111 11111 1111 1111 1111 = 1+1/2*(1-(1/2)23)/(1/2)近似于2)。

十进制浮点数的精度(有效位数)?

-log(10)(2^-23) = 6.924。

double的有效位为16位。

C++算术运算符

整型提升:

C++在计算时,自动将int以下的整型转换为int类型进行计算,之后再赋值到各自的类型。

两种不同整型操作时,自动归一到大整型(两种不同类型之间操作时同样遵守这一规则)。

强制类型转换:

(long) thorn (C语言风格)

long (thorn)

时间: 2024-10-11 07:34:18

第二、三章 开始学习C++、数据处理的相关文章

第三章 shell学习之正则表达式

正则表达式 \<the\>:精确匹配the,不包括包含the的单词 [^b-d]:不包含b~d a\{2\}:a出现2次 a\{2,3\}:a出现2~3次 a\{2,\}:a至少出现2次 [:upper:]:大写字母(用的时候外面加一层[]表示匹配字符集合) [:lower:]:小写字母 [:digit:]:数字 [:alnum:]:大小写字母和数字 [:space:]:表示空格或tab键 [:alpha:]:大小写字母 通配 注意通配和正则表达式不同,虽然有共同的符号 ls -l *.sh

《机器学习》第三章 决策树学习 笔记加总结

<机器学习>第三章 决策树学习 决策树学习方法搜索一个完整表示的假设空间,从而避免了受限假设空间的不足.决策树学习的归纳偏置是优越选择较小的树. 3.1.简介 决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树. 决策树(Decision Tree)是一种简单但是广泛使用的分类器.通过训练数据构建决策树,可以高效的对未知的数据进行分类. 决策数有两大优点: 1)决策树模型可以读性好,具有描述性,有助于人工分析: 2)效率高,决策树只需要一次构建,反复使用,每一

2017.06.29数据挖掘基础概念第二.三章

第二章21.研究的属性类型标称属性:值是一些符号或事物的名称,代表某种类型.编码或状态二元属性:是一种标称属性,只有两个类别或状态,又称布尔属性序数属性:是一种属性,其可能的值之间具有有意义的序或秩评定,但是相续值之间的差是未知的数值属性:是定量的,即他是可度量的量,可用整数或实数值表示(区间和比率标度)22.数据散布常见的度量量(数据如何分散的方法/识别离群点)极差 四分位数.四分位数极差.五数概括图.方差和标准差23.审视数据的图形条形.饼图.线图.分位数图.分位数-分位数图.直方图和散点图

第三章文件管理学习笔记

笔记整理起始时间:2018年3月31日16:16:55 本章内容文件系统结构元素创建和查看文佳复制.转移和删除文件使用Nautilus来管理文件软和硬链接 文件系统文件和目录被组织成一个单根倒置树结构文件系统从根木兰路下开始,用"/"表示根文件系统:rootfs,root filesystem文件名称,默认ext4,xfs下区分大小写以.开头的文件为隐藏文件路径分隔的/文件有两类数据元数据:metadata数据:data文件系统分层结构:LSB,Linux Standard BaseF

第三章的学习心得

又是一次上机实验,有了第一次的经验,感觉上机的时间都有点漫长了,因为在宿舍已经有练习过了,而且还有认真看过书,所以一到上机的时候就可以直接照着自己写的内容打上去就可以了.这次老师只让我们做了实验二,其实我在实验之前就做了实验一,所以也比较快.在晚自习的时候看过了实验所以感觉很简单,第一个实验其实是对题目的理解,而且在实验指导上也有给出答案. 实验二是猜数字游戏,感觉挺好玩的,程序也很容易.在做完实验之后,我又把书本上的程序打一遍,运行然后看结果是什么,感觉Java越来越好玩了.毕竟不像c语言和c

信号与系统_第三章_学习心得

目录 信号的正交分解 相关系数 正交条件 连续时间周期信号的傅氏级数 三角形式的傅氏级数 指数形式的傅氏级数 两种傅氏级数的关系 周期矩形脉冲的频谱和周期的关系 一道典型例题 傅氏级数的性质 时移性质 微分性质 对称性质 偶函数 奇函数 奇谐函数 偶谐函数 连续时间非周期信号的傅氏变换 傅氏变换 典型非周期信号的傅氏变换 矩形脉冲信号(门函数) 单边指数信号 高斯脉冲信号 直流信号 符号函数 单位冲激信号 冲激偶信号 单位阶跃信号 抽样信号 三角脉冲信号 傅氏变换的性质 对称性 时移特性 尺度变

201671010105 2016-2017-2《Java程序设计》第三章学习心得

通过学习第三章,我的总结有以下几点: 先说内容,第三章我们主要学习的是java的基本程序设计结构,学习了与之相关的一些内容,注释,数据类型,变量,运算符,字符串,输入输出语句,数组等等,在这些内容中,有些是在C语言中同样可以学到的,我们上学期已经学过,但也有很多是与c不一样的,是首次接触,比如注释,无论是java还是c语言,对于编程者而言,给自己编写的程序注释是一种良好的习惯,不止自己看懂,别人也能看懂,又比如数据类型,java中多了byte(字节型)和boolean(布尔型).在后面内容中也有

汇编学习第三章

在第三章的学习中,我们开始更深入地学习寄存器. (一)字在内存中的存储与内存单元地址   在第二章中,我们了解到,在CPU中,用16位寄存器来存储一个字,但是由于内存单元是字节单元(即在一个单元内只能存放一个字节),所以一个字要用两个内存单元来存放.举个例子,我们用0.1两个单元来存放数据4E20H,0号单元为低地址单元,1号为高地址单元单元,分别存放它的低位.高位数据.由此,我们提出字单元的概念:由两个地址连续的内存单元组成,用来存放一个16位数据的内存单元.,一般我们将起始地址为N的字单元简

第三章学习小结

第三章主要学习了关于栈和队列的知识,知道了有关栈和队列的初始化和基本操作.栈是只在一头进行插入与删除操作的数据结构,而队列是可以在两头进行插入与删除操作的数据结构.此外栈和队列分别可以分为链栈与顺序栈,链队与顺序队列.栈的特点是先进后出,队列的特点是先进先出. 在这里分享有关栈的函数: #include <stack> //头文件 stack <elemtype> L //定义栈 push():L.push(x) 将数据x放在栈顶 top():L.top()返回栈顶元素 pop()