疾风计划:C++程序设计(郑莉)丨第一章:绪论
文章目录
- 一、计算机系统基本概念
- 1.1 计算机硬件
- 1.2 计算程序语言
- 1.3 机器语言
- 1.4 计算机指令系统
- 1.5 计算软件
- 1.6 计算机程序
- 二、计算机语言和程序设计方法
- 2.1 最初的计算机语言——机器语言
- 2.2 汇编语言
- 2.3 高级语言
- 2.4 C++语言
- 2.5 面向过程的程序设计方法:
- 2.6 面向对象的程序设计方法:
- 三、面向对象的基本概念
- 3.1 对象
- 3.2 抽象与分类
- 3.3 封装
- 3.4 继承
- 3.5 多态
- 四、C++程序的开发过程
- 4.1 程序
- 4.2 三种不同类型的翻译程序
- 4.3 C++程序的开发过程
- 五、计算机中的信息与存储单位
- 5.1 计算机的基本功能
- 5.2 计算机中信息:
- 5.3 信息的存储单位
- 5.4 计算机的数字系统
- 5.5 程序中常用的数制
- 5.6 R进制转换为十进制
- 5.7 十进制转换为R进制
- 5.8 十进制小数转 R 进制小数
- 5.9 八、十六进制的相互转换
- 六、数据在计算机中的编码表示
- 6.1 二进制数的编码表示
- 6.1.1 原码
- 6.1.2 补码
- 6.1.3 补码的原理
- 6.1.4 补码的计算
- 6.1.5 补码的优点:
- 6.2 实数的浮点表示
- 6.3 字符在计算机中的表示
一、计算机系统基本概念
- 计算机系统由硬件、软件组成;
- 指令系统是硬件和软件的界面。
1.1 计算机硬件
1.2 计算程序语言
- 计算机解决问题是程序控制的;
- 程序就是操作步骤;
- 程序要使用语言来表达。
1.3 机器语言
- 计算机能识别的是机器语言;
- 机器语言指令是由0和1编码的;
- 例如:加法指令可能是“0001”。
1.4 计算机指令系统
- 机器硬件能够识别的语言(机器语言)的集合;
- 它是软件和硬件的主要界面。
1.5 计算软件
- 是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件;
- 软件包括程序和文档。
1.6 计算机程序
- 指令的序列;
- 描述解决问题的方法和数据。
二、计算机语言和程序设计方法
- 计算机语言
1.程序员与计算机沟通的语言;
2.描述解决问题的方法和相关数据。 - 计算机语言的级别
1.二进制代码构成的机器语言;
2.使用助记符的汇编语言;
3.使用类似英语单词和语句的高级语言;
4.C++是面向对象的高级语言 - C++支持的程序设计方法
1.面向过程的程序设计方法;
2.面向对象的程序设计方法;
3.泛型程序设计方法
2.1 最初的计算机语言——机器语言
- 由二进制代码构成
- 计算机硬件可以识别
- 可以表示简单的操作
- 例如:加法、减法、数据移动等等
2.2 汇编语言
- 将机器指令映射为助记符,如
ADD
、SUB
、mov
等; - 抽象层次低,需要考虑机器细节。
2.3 高级语言
- 关键字、语句容易理解;
- 有含义的数据命名和算式;
- 抽象层次较高,例如,算式:
a+b+c/d
- 屏蔽了机器的细节,例如,这样显示计算结果:
cout<<a+b+c/d
2.4 C++语言
- 是高级语言
- 支持面向对象的观点和方法:
1.将客观事物看做对象
2.对象间通过消息传送进行沟通
3.支持分类和抽象
2.5 面向过程的程序设计方法:
- 机器语言、汇编语言、高级语言都支持;
- 最初的目的:用于数学计算;
- 主要工作:设计求解问题的过程。
- 大型复杂的软件难以用面向过程的方式编写
2.6 面向对象的程序设计方法:
- 由面向对象的高级语言支持;
- 一个系统由对象构成;
- 对象之间通过消息进行通信。
三、面向对象的基本概念
3.1 对象
- 一般意义上的对象:现实世界中实际存在的事物。
- 面向对象方法中的对象:程序中用来描述客观事物的实体。
3.2 抽象与分类
- 分类依据的原则——抽象;
- 抽象出同一类对象的共同属性和行为形成类;
- 类与对象是类型与实例的关系。
3.3 封装
- 隐蔽对象的内部细节;
- 对外形成一个边界;
- 只保留有限的对外接口;
- 使用方便、安全性好。
3.4 继承
- 意义在于软件复用;
- 改造、扩展已有类形成新的类。
3.5 多态
- 同样的消息作用在不同对象上,可以引起不同的行为。
四、C++程序的开发过程
4.1 程序
- 源程序:
用源语言写的,有待翻译的程序; - 目标程序:
源程序通过翻译程序加工以后生成的机器语言程序; - 可执行程序:
连接目标程序以及库中的某些文件,生成的一个可执行文件;
例如:Windows系统平台上的.EXE
文件。
4.2 三种不同类型的翻译程序
- 汇编程序:
将汇编语言源程序翻译成目标程序; - 编译程序:
将高级语言源程序翻译成目标程序; - 解释程序:
将高级语言源程序翻译成机器指令,边翻译边执行。
4.3 C++程序的开发过程
- 算法与数据结构设计;
- 源程序编辑;
- 编译;
- 连接;
- 测试;
- 调试。
五、计算机中的信息与存储单位
5.1 计算机的基本功能
- 算术运算;
- 逻辑运算。
5.2 计算机中信息:
- 控制信息——指挥计算机操作;
- 数据信息——计算机程序加工的对象。
5.3 信息的存储单位
- 位(bit,b):数据的最小单位,表示一位二进制信息;
- 字节(byte,B):八位二进制数字组成(1byte=8bit);
- 千字节1KB=1024B;
- 兆字节1MB=1024K;
- 吉字节1GB=1024M。
5.4 计算机的数字系统
- 二进制系统;
- 基本符号:
0
、1
。
5.5 程序中常用的数制
进制 | 基数 | 进位原则 | 基本符号 |
---|---|---|---|
二进制 | 2 | 逢2进1 | 0,1 |
八进制 | 8 | 逢8进1 | 0,1,2,3,4,5,6,7 |
十进制 | 10 | 逢10进1 | 0,1,2,3,4,5,6,7,8,9 |
十六进制 | 16 | 逢16进1 | 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F |
5.6 R进制转换为十进制
- 各位数字与其权重相乘,积相加:
(11111111.11)2=1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20+1×2−1+1×2−2=(255.75)10(11111111.11)_2 =1×2^7+1×2^6+1×2^5+1×2^4+1×2^3+1×2^2+1×2^1+1×2^0+1×2^{-1}+1×2^{-2} =(255.75)_{10}(11111111.11)2=1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20+1×2−1+1×2−2=(255.75)10
5.7 十进制转换为R进制
- “除以R取余”法。
-
所以(68)10=(1000100)2(68)_{10} = (1000100)_2(68)10=(1000100)2
5.8 十进制小数转 R 进制小数
- “乘以R取整”法。
所以(0.3125)10=(0.0101)2(0.3125)_{10} = (0.0101)_2(0.3125)10=(0.0101)2
5.9 八、十六进制的相互转换
1位八进制数相当于3位二进制数;
1位十六进制数相当于4位二进制数,例如:
(1011010.10)2=(001011010.100)2=(132.4)8(1011010.10)_2=(001011010.100)_2=(132.4)_8(1011010.10)2=(001011010.100)2=(132.4)8
(1011010.10)2=(01011010.1000)2=(5A.8)16(1011010.10)_2=(01011010.1000)_2=(5A.8)_{16}(1011010.10)2=(01011010.1000)2=(5A.8)16
(F7)16=(11110111)2=(11110111)2(F7)_{16}=(11110111)_2=(11110111)_2(F7)16=(11110111)2=(11110111)2
六、数据在计算机中的编码表示
6.1 二进制数的编码表示
- 需要解决的问题:负数如何表示?
- 最容易想到的方案:
0
:表示“+”号;
1
:表示“-”号。
6.1.1 原码
"符号──绝对值"表示的编码
例如:
- 原码的缺点:
1.零的表示不惟一
[+0]原=000…0
[-0]原=100…0
2.进行四则运算时,符号位须单独处理,运算规则复杂。
6.1.2 补码
- 符号位可作为数值参加运算;
- 减法运算可转换为加法运算;
- 0的表示唯一。
6.1.3 补码的原理
模数:
- n位二进制整数的模数为2n;
- n位二进制小数的模数为2。
补数:
- 一个数减去另一个数(加一个负数),等于第一个数加第二个数的补数,例(时钟指针):
8+(-2)=8+10(mod12)=6
; - 一个二进制负数可用其模数与真值做加法(模减去该数的绝对值)求得其补码,例(时钟指针):
-2+12=10
。
6.1.4 补码的计算
- 借助于“反码”作为中间码;
- 负数的反码与原码有如下关系:
- 1.符号位不变(仍用1表示),其余各位取反(0变1,1变0),例如:
- X=-1100110 [X]原=11100110 [X]反=10011001
- 2.正数的反码与原码表示相同,正数的补码与原码相同;
- 3.反码只是求补码时的中间码;
- 4.负数的补码由该数反码的末位加1求得。
- 5.对补码再求补即得到原码。
- 1.符号位不变(仍用1表示),其余各位取反(0变1,1变0),例如:
6.1.5 补码的优点:
- 0的表示唯一;
- 符号位可作为数值参加运算;
- 补码运算的结果仍为补码。
6.2 实数的浮点表示
- 计算机中通常采用浮点方式表示小数;
- 实数N用浮点形式可表示为:N=M×2E
E:2的幂,N:阶码;
M:N的尾数。
6.3 字符在计算机中的表示
- 字符在计算机中是通过编码表示的;
- 例如:
1.ASCII码是一种常用的西文字符编码:用7位二进制数表示一个字符,最多可以表示27=128个字符;
2.《GB18030-2005信息技术中文编码字符集》是中国国家标准。
疾风计划:C++程序设计(郑莉)丨第一章:绪论相关推荐
- 郑莉java课后答案,Java语言程序设计(郑莉)第三章课后习题答案
<Java语言程序设计(郑莉)第三章课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计(郑莉)第三章课后习题答案(10页珍藏版)>请在人人文库网上搜索. 1. ...
- 郑莉版java第三章答案_java语言程序设计(郑莉)第七章课后习题答案.docx
java语言程序设计(郑莉)第七章课后习题答案.docx 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: if (matrix.isTria ...
- java语言程序设计郑莉课后答案_Java语言程序设计郑莉课后习题答案.pdf
(1) 构造方法的方法名与类名相同: Java 语言程序设计(郑莉) (2 ) 构造方法没有返回类型(修饰符void 也不能有): 第二章习题答案 (3 ) 构造方法通常被声明为公有的(public) ...
- java语言程序设计郑莉课后答案_java语言程序设计郑莉第九篇课后习题答案.docx...
java语言程序设计郑莉第九篇课后习题答案.docx 还剩 36页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...
- c++语言编程,一个电灯两个开关控制,[理学]四川大学计算机学院精品课程_面向对象程序设计C++课件_游洪越_第一章绪论.ppt...
[理学]四川大学计算机学院精品课程_面向对象程序设计C课件_游洪越_第一章绪论 主讲教师: 游洪跃 个人主页: /~youhongyue 邮件地址: youhongyao@ 教材:<C++面向对 ...
- 人工智能原理——第一章 绪论
人工智能原理--第一章 绪论 文章目录 人工智能原理--第一章 绪论 1.1 人工智能的发展 人工智能的发展 – 孕育期 人工智能的发展 – 摇篮期 人工智能的发展 – 发展期(1970-1979) ...
- 软件工程第一章绪论————(2019.12.27学习笔记)
第一章绪论 第一节软件工程概念的提出与发展 1. 软件危机 1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词.用来描述因为软件生产率, ...
- 数据库 第一章 绪论
1 数据库系统概述 1.1 数据库的4个基本概念 1.数据(Data) 数据(Data)是数据库中存储的基本对象 数据的定义 描述事物的符号记录 2.数据库(Database) 数据库的定义 数据库( ...
- 计算机图形学第一章---绪论
所用教材:<计算机图形学基础>(第二版)陆枫 何云峰 编著 主要参考书目 孙家广,计算机图形学(第三版),清华大学出版社,1999. Donald Hearn,M.Pauline Bake ...
- jBPM3.12用户指南中文翻译----第一章 绪论
这是Jboss 的jBPM3.12框架的用户指南的中文翻译.其中第一章的译文,是我在网上找到的.其他几章都是我自己做的翻译.我的翻译是中英文对照,只翻译部分我认为重要的,不翻译简单的英文,以免浪费你我 ...
最新文章
- SkFlattenable /Registrar/
- R可视化删除ggplot2图中的网格线(Gridlines)
- 计算机c盘属性不显示安全选项,win7系统中文件夹属性安全选项卡空白的解决方法...
- 移动端HTML5长按图片会选中页面中某个位置的文字
- 并发编程——进程——进程的同步与数据共享
- P4068 [SDOI2016]数字配对
- App Store 排名获取。
- html右缩进怎么设置,WPS中怎么设置右缩进两个字符?
- IOS KVO与NSNotificationCenter简单使用
- HTML+JS调用摄像头拍照并上传图片
- Axure 9.0激活码亲测可用
- 微信小程序-wxParse插件的使用
- 通过stm32cubemx配置DCMI驱动ov5640摄像头
- Connection terminated as request was larger than XXX
- 计划的主体部分应有哪些内容_知道智慧树应用写作技能与规范网课答案
- 制作启动U盘重装系统
- 【软件之道】Word模板的制作及使用
- 云服务器如何修改操作系统,云服务器如何修改操作系统
- java计算机毕业设计三门峡市旅游景点一站式服务规划系统演示录像源程序+mysql+系统+lw文档+远程调试
- 79、Vue的发展及优点和缺点
热门文章
- 论文解析:Deep Reinforcement Learning for List-wise Recommendations
- 组策略——软件限制策略(完全教程与规则示例)
- 创建TLS 客户端凭据时发生严重错误。内部错误状态为 10013。处理记录
- 小波变换在信号去噪声中的使用
- iOS黑客Luca Todesco演示iOS 10 beta 8越狱
- 雨课堂知识点总结(十三)
- 异常——Navicat提示access violation at address in module ‘navicat’
- 医学免疫学 Chapter4:抗体
- 思科模拟器配置静态路由(下一跳使用端口)
- Graphhopper Routing导航API请求参数和返回结果说明