第一章 绪论
程序的开发过程
程序
-
源程序:
- 用源语言写的,有待翻译的程序。
-
目标程序:
- 源程序通过翻译程序加工以后生成的机器语言程序。
-
可执行程序:
- 连接目标程序以及库中的某些文件,生成的一个可执行文件;
- 例如:Windows 系统平台上的.EXE 文件。
三种不同类型的翻译程序
-
汇编程序:
- 将汇编语言源程序翻译成目标程序。
-
编译程序:
- 将高级语言源程序翻译成目标程序。
-
解释程序:
- 将高级语言源程序翻译成机器指令,边翻译边执行。
-
C++程序的开发过程
- 算法与数据结构设计;
- 源程序编辑;
- 编译;
- 连接;
- 测试;
- 调试。
计算机中的信息与存储单位
-
计算机的基本功能
- 算术运算;
- 逻辑运算。
-
计算机中信息:
- 控制信息:指挥计算机操作;
- 数据信息:计算机程序加工的对象。
- 数值信息:浮点数和定点数;
- 非数值信息:字符数据和逻辑数据。
-
信息的存储单位
- 位(bit,b):数据的最小单位,表示一位二进制信息;
- 字节(byte,B):八位二进制数字组成(1 byte = 8 bit);
- 千字节 1 KB = 1024 B;
- 兆字节 1 MB = 1024 K;
- 吉字节 1 GB = 1024 M。
计算机的数字系统
程序中常用的数制
-
计算机的数字系统
- 二进制系统;
- 基本符号:0、1。
-
四种进制:
-
R 进制转换为十进制:
- 各位数字与它的权相乘,其积相加;
- 例如: 。
-
十进制整数转换为 R 进制整数:
- 除 R 取余法:
- 除 R 取余法:
-
十进制小数转换为 R 进制小数:
- 乘 R 取整法:
- 乘 R 取整法:
-
二、八、十六进制的相互转换
- 1位八进制数相当于3位二进制数;
- 1位十六进制数相当于4位二进制数;
- 例如: 。
数据在计算机中的编码表示
二进制数的编码表示
-
原码
- 符号──绝对值表示的编码;
- 符号位为0表示“+”号,为1表示“-”号。
- 原码的缺点:
- 零的表示不惟一;
- 进行四则运算时,符号位须单独处理,运算规则复杂。
-
补码
- 符号位可作为数值参加运算;
- 减法运算可转换为加法运算;
- 0的表示唯一;
- 补码的原理:
- 模数:
- n 位二进制整数的模数为 ;
- n 位二进制小数的模数为2。
- 补数:
- 一个数减去另一个数(加一个负数),等于第一个数加第二个数的补数:例(时钟指针):8+(-2)=8+10 (mod 12)=6;
- 一个二进制负数可用其模数与真值做加法 (模减去该数的绝对值) 求得其补码,例(时钟指针):-2+12=10。
- 补码的计算:
- 借助于“反码”作为中间码;
- 负数的反码与原码有如下关系:
- 符号位不变(仍用1表示);
- 其余各位取反(0变1,1变0)。
- 正数的反码与原码表示相同,正数的补码与原码相同;
- 反码只是求补码时的中间码;
- 负数的补码由该数反码的末位加1求得。
- 对补码再求补即得到原码。
- 补码的优点:
- 0的表示唯一;
- 符号位可作为数值参加运算;
- 补码运算的结果仍为补码。
- 模数:
-
实数的浮点表示
- 计算机中通常采用浮点方式表示小数;
- 实数 N 用浮点形式可表示为:
;
- E:2的幂;
- N:阶码;
- M:N 的尾数。
-
字符在计算机中的表示
- 字符在计算机中是通过编码表示的;
- ASCII 码是一种常用的西文字符编码,用7位二进制数表示一个字符,最多可以表示 个字符;