《计算机科学概论》(周浩然)前三章预习

第一章:全景图

    1.1 计算系统由硬件、软件和它们管理的数据构成。作为一种动态实体,其可以通过与周围的环境进行交互来解决问题。

       计算系统的分层(内到外):信息层→硬件层→程序设计层→操作系统层→应用层→通信层。

       抽象:删除或隐藏了复杂的细节,只保留实现目标所必需的信息的心理模型。

       打个比方:玩游戏时,我们只需要去操作进行游戏,而忽略组成游戏的代码如何编写。这就是在使用抽象。必须有但不需要在乎就可以达成目标。

       1.2 计算硬件简史:算盘→Blaise计算机器→Jacquard织布机→Babbage分析机→Turing图灵机→Konrad机械二进制可编程计算机→Colossus全可编程电子数 字计算机→计算机时代→真空管计算机→晶体管计算机→集成电路计算机→大规模MIMD(多指令多数据流)计算机→联网→云计算

               计算软件简史:第一代软件(机器语言编写)→第二代软件(高级语言编写,例如FORTRAN和COBOL等)→第三代软件(应用了操作系统)→第四代软件(结构化程序设计方法)→第五代软件(现在)

     1.3 隐藏在所有计算问题之下的基本问题是,即最基本问题是:

“什么可以被有效地自动操作?“

  1. 算法思想:即能够用按部就班的过程表示问题,从而解决它们。
  2. 表示法:即用能被有效处理的方式存储数据。
  3. 程序设计:即把算法思想和表示法组织在计算机软件中。
  4. 设计:使软件满足一种用途。

问题:

     1:在进行编程的过程中,什么是我们必须钻研透彻的?什么是我们应该抽象处理的?抽象的度怎么看?

       2:希望老师能深层次的讲解关于 “抽象“ 这一概念。

第二章:二进制数值与计数系统

2.1计算机硬件用来表示和管理信息的方式——二进制数值

在计算机的最底层,所有信息都只是用数字0和1 存储的

  1. 数字(number):抽象数学系统的一个单位,服从算术法则。即表示一个值。
  2. 自然数(natural number):0或通过在0上重复加1得到的任何数。
  3. 负数(negative number):小于0的数,是在相应的正数前加上负号得到的数。
  4. 整数(integer):自然数、自然数的负数或0。
  5. 有理数(rational number):整数或两个整数的商(不包括除以0的情况)。

2.2 基数(base):计数系统的基本数值,规定了这个系统中使用的数字量和数位位置的值。

以二为基数,即二进位制,有且仅有两个数字 0和1。逢二进一

以八为基数,即八进位制,有且仅有八个数字0 ~ 7。逢八进一

    1. 数字由位置计数法编写:
    2. 最右边的数即表示:它的值乘以基数的0次幂;
    3. 右往左数第二位数即表示:它的值乘以基数的1次幂;
    4. 以此类推

位置记数法(positional notation):一种表达数字的系统,数位按顺序排列,每个数位有一个位 值,数字的值是每个数位和位值的乘积之和。

其本质是一种多项式来记录数字。

       例:943 = 9*102+4*101+3*100  (10即为基数)

       正式的表示位置计数法:

       一个数字M,采用R为基数,n为数位,di表示该数字M的第i位上的数值(最右边的数为1号位,即从右往左数)

                            N = dn*Rn-1+dn-1*Rn-2+……+d2*R1+d1*R0 (这里的N为以10为基数的数值)

                            可用于将一个其他进位制数转换为一个十进制数。

       例如:M = 943 R = 13 n = 3

                M = N = 9*132+4*13+3 = 1576;

                此时满足943(13进位)= 1576(10进位);

要用任何基数表示基数值,只需要两 个数字。0位于最右边,1在0的左边,这个数字表示基数值本身。

其他计数系统中的加减乘除与十进制相同,满基数进一,借一得一个基数

以2的幂为基数的计数系统中各进位制的转换:

二进制转八进制转换:从最右边的二进制数位开始,每三个数位一组,把每组数字转换成相应的八进制数。即每个八进制数都可以用一个三位内的二进制数表示。

例子:1010110(二进制)→1 010 110 →1 2 6→126(八进制)→86(十进制)

八进制转二进制:利用和上述相反的方法,将八进制数中的每一位转化为二进制对应数即可。

二进制与十六进制转换:从最右边的二进制数位开始,每四个数位一组,把每组数字转换成相应的十六进制数。即每个十六进制数都可以用一个四位内的二进制数表示

              例子:1010110(二进制)→101 0110→5 6→56(十六进制)→86(十进制)

将十进制数转换为其他进位制数:

       一般使用短除法:

       例:86(十进制)→?(二进制)

       86/2=43余0 43/2=21余1  21/2=10余1    10/2=5余0   5/2=2余1     2/2=1余0            1/2=0余1

将余数倒过来得到:1010110(二进制)

二进制与计算机:

现代计算机都是二进制机器。所有信息都是用二进制数值表示的。

计算机的每个存储位存放的值是0或1。注意,存储位不能是 空的,必须存放0或1。 (0是低电平信号,1是高电平信号)

  1. 每个存储单元称为一个二进制数字(binary digit),或简称为位(bit)
  2. 位集合在一起 就构成了字节(byte,8位),
  3. 节集合在一起构成了字(word)。字中的位数称为计算机的字长。

问题:

     1.位置计数法还有那些应用?

       2.如何计算n进制数的乘除法?只能将其转换成十进制后计算吗?还是有更简便的方法?

       3. 如果是二进制和32进制的互化,是否为每5位数为一个单位?64进制是没6个数为一个单位?

第三章:数据表示法

3.1数据是基本值或事实,数据是未组织过的,缺少上下文。

信息则是用某种能够有效解决问题的方式组织或处理过的数据。可以帮助我们回答问题(即“告知”)
每个文档、图像和音频等都将被表示为由0和1组成的字符串。

带宽定义了在固定时间内从一个地点传输到另一个地 点的最大位数或字节数

正因此,我们需要减少传输文件的空间,即数据压缩意义重大。

数据压缩,就是减少存储一段数据 所需的空间。压缩率(compression ratio)说明了压缩的程度,是压缩后的数据大小除以原始数据大小 的值。

数据压缩技术可以是无损的,即提取的数据没有丢失任何原始信息。数据压缩也可以 是有损的,即在压缩过程中将丢失一些信息。

数据的分类:

  1. 模拟数据(analog data)是一种连续表示法,模拟它表示的真实信息。
  2. 数字数据(digital data)是一种离散表示法,把信息分割成了独立的元素。

数字化(digitize)数据,把信息 分割成片段并单独表示每个片段。

计算机使用二进制的优势:

  1. 存储和管理数据的设备只需要表示两种数值之一,如此可降低成本,提高可靠性。
  2. 电信号只传输二进制数据,也易于维护,电信号只有高低两种。      
  3. 在电平下降时,所有电信号(包括模拟信号和数字信号)都会降级。会造成信息丢失。
  4. 另一方面,数字信号只在两个极端之间跳跃,被称为脉冲编码调制(PCM)。数字信号 在信息丢失之前可以降级相当多
  5. 数字信号会被周期性地重新计时(relock),以恢复到它的原始 状态。只要在信号降级太多之前重新计时,就不会丢失信息

二进制表示法:一个位只能是0或1,没有其他可能。要表示多种可能就需要多个位来共同表示。

              一般说来,n位二进制数字能表示2"种状态,

              分配给任何类型的数据的最小存储量通常是2的幂的倍数。

3.2数字数据表示法:

负数表示法:

  1. 符号数值表示法:

符号表示数所属的分类(正数或负数)、值 表示数的量值的数字表示法。即以+号表示正值,以-号表示负值。

       这样会导致有+0和-0的出现,正常来说,一般忽略-0。但对计算机而言,这两种不同的表达方式会引起不必要的麻烦,故一般不这样。

2.定长量数(补码):

如果只允许用定量的数值,那么可以用一半数表示正数,另一半数表示负数,符号由数的量值决定。

       即将正数分为两半,左半部分记作正值,右半部分记作负值。倒过来亦可。

       负数表示的通式:

negative(I)=nˣ-I(I为负数的绝对值,n为进制数值,x为数字位数)

3.二进制补码(鉴于计算机使用二进制):

左边的位数叫作符号位(sign bit),表示了这个数字是负数还是正数。如果最左边一位是0,那么说明这个数字是正数;如果是1说明这个数字是负数。

更简单的方法来计算二进制补码:

将每一位取反再加一。也就是说,取数字的正值,将所有1变成0,将所有0变成1,再加1。

正数的反码等于它的原码正数的补码等于它的原码;

负数的补码等于反码+1。

4.数字溢出:

       给结果预留的位数存不下计算出的值的状况。

实数表示法:浮点表示法

实数具有整数部分和小数部分,每个部分都可能是 0。

任何实值都可以由三个属性描述,即符号(正号或负号)、尾数和指数,

数字的个数是固定的,但是小数点却是浮动的:

正指数将把小数点向右移,负指数将把小数点向左移。

例子:12001.00 → 12001*10°    -123.10 →-12310*10-2   155555000.00 → 15555*104

将十进制转化为k进制:小数部分

用新基数乘(multiply)它。乘法的进位将成为答案右边的下一位数字,乘法结果中的小数部分将成为新的被乘数,整个过程直到乘法结果中的小数部分为0截止。

例子:0.75*2 = 1.50           1                          0.25*2 = 0.50        0

         0.50*2 = 1.00           1                          0.50*2 = 1.00        1

所以0.75(十)= 0.11(二)                         所以0.25(十) = 0.01(二)

对于20.25的转化:先转话整数部分,再转换小鼠部分,后相加。

20/2=10        0                                               0.25*2 = 0.50        0

10/2=5          0                                               0.50*2 = 1.00        1

5/2=2            1                                              

2/2=1            0                                              

1/2=0            1                                              

所以20(十)=10100(二)                          0.25(十)=0.01(二)

20.25(十) = 10100.01(二)

3.3:文本表示法:

通法:利用代码表示字符,规定了字符和对应代码关系的集合叫字符集。常用的有两种,ASCII和Unicode。

文本压缩:

  1. 关键字编码:用单个字符代替了常用的单词

解压过程中则需要用完整的单词来代替其中的单个字符。

       局限性:

对关键字编码的字符不能出现在原始文本中

字母的大写版本和小写版本是不同的字符,并且容易产生歧义。

  1. 行程长度编码:

重复字符的序列将被替换为标志字符(flag character),后面加重复 字符和说明字符重复次数的数字。

  1. 赫夫曼编码:

用较少的位表示经常出现的字符,而将较长的位串留给不经常出现的字符。

3.4:音频数据表示法

        模拟表示法:采集表示声波的电信号,并用一系列 离散的数值表示它。模拟信号是随电压连续变化的。要数字化这种信号,需要周期性地测量信号的电压,并记录合适的数值用存储的电压值创建一个新的连续电信号,可以使声音再生。

        一般说来,采样率在每秒40000次左右就 足够创建合理的声音复制品。

音频格式:基于从模拟信号采样得到的电压值。有着许多格式,但以MP3为主

3.5:图像与图形表示法

1.颜色表示法:RGB(red-green-blue)值,说明了每份原色的相对份额由此引出了三维色空间。

                     是否能在显示器上显示出想要的颜色还与显示器的性能有关联。

  1. 数字化图像与图形:

光栅图形格式:数字化一幅图像是把它表示为一个独立的点集,这些点称为像素。代表图像的元素,每个像素由一种颜色构成。表示一幅图像使用的像素个数称为分辨率。

图像的矢量表示法:矢量图形是一系列描述线段的方向、线 宽和颜色的命令

3.6:视频表示法

视频编译码器:压缩视频的时间和空间,从而减小视频的内存大小。

问题:

1.计算机是通过什么办法将二进制字符串转换成为电信号的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值