计算机系统基础(1)学习笔记

· 现代计算机系统的层次;

· 应用程序、语言处理系统、操作系统、指令体系结构、计算机硬件。
· 语言处理系统包括:各种语言处理程序(如汇编、编译、链接)、运行时系统(如库函数、调试、优化等功能)。
· 操作系统包括人机交互的界面、提供服务功能的内核例程。

· ISA(指令集体系结构):

· ISA是一种规约,规定了如何使用硬件。
· 是可执行的指令的集合,包括指令格式、操作种类以及每种操作对应的操作数的相应规定;
· 指令·可以接受的操作数的类型;
· 操作数所能存放的寄存器组的结构,包括每个寄存器的名称、编号、长度和用途;
· 操作数在储存空间时按照大端还是小端方式存放;
· 操作数所能存放的储存空间的大小和编址方式;
· 指令获取操作数的方式,既寻址方式;
· 指令执行过程的控制方式,包括程序计数器(PC)、条件码定义等。

· 定点数与浮点数:

· 小数点位置约定在固定位置的数称为定点数;
· 小数点位置约定为可浮动位置的数称为浮点数。
· 定点小数用来表示浮点数的尾数部分。
· 定点整数用来表示整数,分带符号整数和无符号整数。
· 任何是实数(浮点数)X都可以表示为:在这里插入图片描述
其中S取值为0或1,用 来表示数X的符号;M是一个二进制定点小数,称为X的尾数;E是一个二进制定点整数,称为数X的阶或指数;R是基数,可以为1、 4、 16等。计算机中只要表示S、M和E三个信息就能确定X的值,这就是浮点数。在这里插入图片描述

· 原码、移码、补码、反码:

· 原码: 首位表示正负,其余用二进制表示。

· 移码: 将每一个数值加上一个偏置常数(bias)。通常,当编码位数为n时,bias取2n-1或2n-1-1。此时移码和补码仅第一位不同,移码用来表示浮点数的阶(便于浮点数加减运算时的对阶操作,比较大小),例如:在这里插入图片描述
· 补码: 实现了加法与减法的统一。在这里插入图片描述
X是真值,X的补码是机器数。
· · 计算方法: 一个正数的补码等于正数本身;而 一个负数的补码等于模(2n,n相当于负数的位数)减去该负数的绝对值,再将首位置为1。对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一负数的补码来代替;一个负数的补码等于将对应正数补码的各位取反,末位加一。
· 变形补码: 双符号,用于存放可能溢出的中间结果。比正常二进制数多一位,最高位用于储存符号位,相当于在补码首位添加一位表示符号或者溢出的数字。如图:
在这里插入图片描述
· 反码: 将所有位数反转过来。
带符号数用补码表示。

· 浮点数的表示:

· 同一个数有多个表示形式,对于十进制数:1.0*1000000000,有规格化形式:1.0 * 10-9(唯一),非规格化形式:0.1 * 10-8等。
· 对于二进制数,和前面讲的浮点数表一样。
· 例:对于32位浮点数:
在这里插入图片描述
· 第0位S表示符号位;第18位用**移码**表示**阶码E**(偏置常数为128);第9位第31位为二进制原码小数表示的尾数M。
· 规格化尾数的小数点后第一位总是1,所以规定第一位默认的1不显示出来,这样23位数可以表示24位数。
在这里插入图片描述
在这里插入图片描述
· 为了可以表示更多的有效数字,通常规定格式化数的小数点前为1。
· 单精度SP,双精度DP浮点数表示方法:
· 在SP规格化阶码中,阶码范围是0000 0001(-126)~ 1111 1110(127),全1和全0要表示特殊值。
· SP的偏置常数为127,DP的偏置常数为1023。
在这里插入图片描述
记住阶码一定要用移码表示,也就需要偏置常数。
· 例:1 011 11101 110 0000 0000 0000 0000 0000(单精度float)的值是多少:
· · 首先,首位为1,是负数。
· · 阶为0111 1101,偏置常数为127,阶码的实值=0111 1101 - 127(0111 1111)= -2。
· · 尾数部分必须在最前面加1。则尾数数值为1 + 1 * 2-1 + 1 * 2-2 + 0 * 2-3 + 0 * 2-4…… = 1.75。
所以原数的真值为-1.75 * 2-2 = -0.4375。
· 例:已知float型的变量为-12.75,求x的机器数。
· · 首先写为规格化二进制数:-12.75 = -1100.11 = -1.100 11 * 23
· · 所以符号位S为1;
· · 阶码E = 127(偏置常数)+ 3 = 128 + 2 = 1000 0010。
· · 尾数码 = 1001 1(后面补0,补足23位)……
· · 所以机器数为:1100 0001 0100 1100 0000 0000 0000 0000。
· 特殊数表示:
· · +0表示为:0 00000000 0000000000000(全0)。
· · -0表示为:1 00000000 0000000000000(首位为1)。
· · +∞:0 11111111 0000000000000000
· · -∞:1 11111111 0000000000000000
· · 在浮点数中,浮点数÷0不会抛出异常,反而会表示为+∞/-∞。
· · 对于单精度浮点数:
在这里插入图片描述
· · 对于不可表示数,机器会将其转化为最邻近的可表示数。这里的不可表示数是因为float表示的数是有限、稀疏的,对于精度太大的数可能会被近似储存,从而表示为可表示数。

· 非数值数据的表示:

· · 逻辑数据的编码表示:

· · 用一位bit表示;进行运算时,按位进行运算;计算机通过指令识别逻辑数据和数值数据。

· · 西文字符的编码表示:

· · 常用ASCII码表示。
· · 显示时,需要点阵输出码等。

· · 汉字及国际字符的编码表示:

· · 有以下几种表示形式:
· · · 输入码:对汉字用相应的按键进行编码表示,用于输入(如:输入法)。
· · · 内码:用于在系统中进行储存、查找、传送等处理。
· · · 字模点阵或轮廓描述:描述汉字字模点阵或轮廓,用于显示/打印。

· · GB2312-80字符集:

· · · 汉字的区位码:

· · · 码表由94行、94列组成,行号为区号,列好为位号,各占7位bit。
· · · 指出了汉字在码表中的位置,共14位,区号在左,位号在右。

· · · 汉字的国际码:

· · · 每个汉字的区号和位号各自再加上32(20H,H表示16进制),得到国际码;
· · · 国际码中区号和位号各占7位,在计算机内部,为了方便处理和储存,前面添加一个0,构成一个字节。

· · · 汉字内码:

· · · 为了使国际码和ASCII码区别,将国际码的两个字节的第一位 置为1,即得到汉字内码。
在这里插入图片描述

· · 多媒体信息的表示:

· · · 图形用构建图形的直线或曲线的坐标点及控制点来描述,而这些坐标点或控制点则用数值数据描述。
· · · 图像用构成图像的点(像素)的亮度、颜色或灰度等信息来描述,这些亮度和灰度等数值则用数值数据描述。
· · · 音频信息通过对模拟声音进行采样、量化(二进制编码)来获得,因此量化后得到的是一个数值数据序列(随时间变化)。
· · · 视频信息描述的是随时间变化的图像(每一幅图像称为一帧)。
· · · 音乐信息(MIDI)通过对演奏的乐器、乐谱等各类信息用0和1进行编码来描述。
· · 多媒体信息用一个复杂的数据结构来描述,其中的基本数据要么是数值数据,要么是用0/1编码的非数值数据。

· 数据的基本宽度:

· 比特bit,位)是计算机中处理、储存、传输信息的最小单位
· 二进制信息最基础的计量单位是字节Byte
· · 字节是最小可寻址单位,线代计算机的储存器按字节编址;
· · LSB表示最低有效字节,MSB表示最高有效字节
· 字长指数据通路的宽度(CPU内部数据流经的路径以及路径上的部件)。
· 表示被处理信息的单位,用来度量数据类型的宽度。

· · 容量单位换算:

· · KB:1KB = 210 Byte = 1024 B
· · MB:1MB = 210 Byte = 1024 KB
· · GB:1GB = 210 Byte = 1024 MB
· · TB: 1TB = 210 Byte = 1024 GB

· · 通信单位换算:

· · kb/s:1kbps = 103 b/s = 1000 bps
· · Mb/s:1Mbps = 106 b/s = 1000 kbps
· · Gb/s:1Gbps = 109 b/s = 1000 Mbps
· · Tb/s:1Tbps = 1012 b/s = 1000 Gbps
如果把b换成B,则表示字节而不是比特。K表示1024,k表示1000,M、m、G等没有特殊说明,看上下文判断。

· · 数据类型与机器有关:

· · 同类型数据并不是所有机器都采用相同的宽度,分配的字节数随ISA、机器字长和编译器的不同而不同。

· 数据的储存和排序类型

· 大端排序和小端排序:
· 设int i = -65535,存放在100号但单元上(占据100~103),则用“取数”指令访问100号单元取出 i 时,必须清楚 i 的4个字节是如何存放的。
· · i = 216 - 1,所以i的补码是FF FF 00 01
· · 存放情况可能如下:
在这里插入图片描述
· · 小端方式:就是高字节在高位存放,低字节在地位存放。
· · 大端方式:与小端方式相反。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机科学导论是一门介绍计算机科学基础概念和原理的课程,是计算机科学专业的基础课程之一。学习此课程可以帮助学生建立计算机科学的基本思维方式,了解计算机科学的历史和发展,掌握计算机科学的基本原理和概念,以及学习计算机科学的基本方法和技能。 以下是计算机科学导论的一些学习笔记: 1. 计算机科学的历史和发展 计算机科学的历史可以追溯到古代的计算工具,如算盘和天平等。到了19世纪末,出现了第一台机械计算机。20世纪40年代,电子计算机的发明和普及,标志着计算机科学的正式诞生。计算机科学的发展历程可以分为硬件和软件两个方面。硬件方面的发展主要是指计算机硬件的性能和功能的不断提升,如存储容量的增加、处理速度的提高和计算机体积的缩小等;软件方面的发展则是指计算机程序和系统的不断完善和优化,如操作系统、编程语言和数据库等。 2. 计算机科学的基本概念和原理 计算机科学的基本概念和原理包括计算机组成原理、数据结构、算法、编程语言、操作系统、数据库等。其中,计算机组成原理是指计算机硬件的组成和工作原理,包括中央处理器、存储器、输入输出设备等;数据结构是指数据在计算机内存中的组织方式,包括数组、链表、堆栈、队列等;算法则是指解决计算问题的一系列步骤,包括排序、搜索、图形算法等;编程语言是指计算机程序的语言,包括C、Java、Python等;操作系统是指计算机系统的核心组成部分,提供了对硬件设备的管理和协调;数据库则是指数据的存储和管理方式,包括关系型数据库和非关系型数据库等。 3. 计算机科学的基本方法和技能 计算机科学的基本方法包括分析、设计、实现和测试。分析是指对问题进行分析和抽象,确定问题的解决方案;设计是指根据问题的解决方案,设计计算机程序和系统;实现是指编写计算机程序和系统的代码;测试是指对程序和系统进行测试,确保其正确性和可靠性。 计算机科学的基本技能包括编程、数据处理、计算机网络和安全等。编程是指使用编程语言编写计算机程序;数据处理是指对数据进行收集、处理和分析;计算机网络是指计算机之间的通信和数据传输;安全则是指保护计算机和网络不受恶意攻击和非法访问。 以上是计算机科学导论的一些学习笔记,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值