计算机系统的组成
五大功能部件组成
运算器:算术运算:加减乘除,逻辑运算:与或非
控制器:神经中枢和控制中心,只有控制器可以发出控制指令
存储器:内存:当前使用的数据;外存:暂时不用的数据
输入设备:人类语言转换成01语言
输出设备:01语言转换成人类语言
指令、程序、软件
操作码:我们要执行什么样的运算
操作数:一个地址,操作码的地址
程序设计语言
C++和C语言的关系
C++语言
- iostream输入输出流,定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。
- 预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏(screen、log)。
- cout 是与流插入运算符 << 结合使用。<< 运算符被重载来输出内置类型(整型、浮点型、double 型、字符串和指针)的数据项。字符串要用双引号。
- endl 用于在行末添加一个换行符。(光标到下一行了)
- return 0,表示程序结束了
- 预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。
- cin 是与流提取运算符 >> 结合使用的。C++ 编译器根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中。流提取运算符 >>在一个语句中可以多次使用。(按回车键)
进位计数制及转换
十进制转换成r进制方法
整数部分:除r取余法
小数部分:乘r取整法,一直乘到满足精度要求(比如保留到小数点后六位小数)
一位的十六进制对应四位的二进制数,以小数点为中心,向两边发散四位为一组分组,不够四位的在左边(整数)或者右边(小数)补零。
一位的八进制对应三位的二进制数,以小数点为中心,向两边发散三位为一组分组,不够三位的在左边(整数)或者右边(小数)补零。
八进制和十六进制的相互转换,可以二进制为基础进行。
整数
整数在计算机中占了一位,共八个字节,其中第一个字节为符号位。
反码:存在+0和-0的区分
整型的最大值:01111111 = 127 ,超过127会出现溢出错误。
浮点数
浮点数占了四个字节,每个字节八位,一共32位。
西文字符
控制字符:33个
图形字符,0为65,A是65,a是97
数据类型
基本类型不可以再分解
构造类型还可以再分解成其他的一种或者几种基本类型
指针类型存放的是内存中的地址,不是具体的值
红色描述的是C++中特有的类型,黑色的是C/C++共用的
整型
浮点型(实型)
计算误差由有效数字决定,float型为七位有效数字,超过七位(不包括小数点)的部分为一个随机数。同理double型为16位有效数字。
避免一个很大的数和一个很小的数进行相加。
字符型
勘误:c1 - 32 = 65
常量
转义字符分为三大类
控制字符:a-v(\t制表符,光标跳到下一个制表位置,一个制表是八位,会跳到第九位)
表示字符本身:‘~0
用三位的八进制或两位的十六进制表示字符的ASCII码
首先输出ab空格c,\t本来在第五位,现在跑到了第九位,输出空格de,\r使光标跑到本行的开头第一个位置,输出f,替换了原来的a,\t制表符跳到第九位,把中间经过的位全部变成空格,在第九位输出g。
先输出一个h,\t制表符跑到第九位输出一个i,\b两个退格符,回到第八位输出j空格k,原先i的位置被空格替代,\n换行符从下一行输出123’“\ABCDE(’; "; \; \x41十六进制; \102八进制)
变量
一条语句只能定义一种类型的变量。
常变量在函数调用过程中作为参数,保护传入函数的值不变。
运算符
取正、取负优先级: 三级
乘、除、求余: 五级
加、减: 六级
一个=赋值运算符,两个==等于运算符
0为假,真为1
赋值运算符: 15级(基本最后算)
a>b>c,自左向右算,a>b为真,真为1,1>c,(c为-5,为真,c为2,假)
非:3级
与、或:13,14级
赋值运算符的左边只能是变量,不能是常量和表达式
b*=k相当于b=bk
判断x>=0是否成立,如果成立则ax+b,如果不成立则为x
逗号运算符: 18级优先级(最低)
整个逗号表达式的值为最后一个表达式的值!
表达式
x的类型和数据值是不会改变的!只是在表达式中用的int型
横向箭头是必须要进行转换,如字符型要参与运算必须转换成整型,float型数据要参与运算必须转换为double型等
纵向箭头指运算双方类型不相同时转换的方向,由低级别向高转换
计算机回从左向右扫描,首先扫描到一个运算符+,然后继续扫描到了下一个运算符+,则按照从左到右,先做第一个加法+,10+‘a’。然后剩下一个加法运算符,继续扫描到了乘法运算符,因此先做乘法运算符,后续以此类推。