C语言学习之路--计算机系统组成以及工作原理,进制之间的转换和机器数及其表示范围

目录

一、前言

  • 本人是一名小白,这一篇是记录我C语言学习中的计算机系统组成以及工作原理,进制之间的转换和机器数及其表示范围的所学所得,仅为简单的认识下C语言中的各个知识。

二、计算机系统组成以及工作原理简介

  • 计算机是以逻辑部件为物质基础,能够对信息进行自动处理的机器逻辑部件其实就是指计算机的硬件系统,而对信息的自动处理则是由计算机的软件系统来实现的。
  • “系统”,我们曾在高中生物课程中了解到它是指由若干相互独立而又相互联系的部分所组成的整体,从这个方面来说,计算机系统是由硬件系统软件系统组成。
  • 分类如下图所示
    在这里插入图片描述

1、硬件系统基本组成原理及工作原理

  • 硬件是构成计算机的物理装置,看得见,摸得着,是一些实实在在的有形实体。随着时代的发展,半个多世纪以来,出现了各种类型的计算机,但是他们的基本结构是相同的。
  • 现在所使用的计算机硬件系统的结构一直沿用了由美籍数学家冯 · 诺伊曼提出的模型,它是由运算器,控制器,存储器,输入设备和输出设备五大功能部件组成。
  • 计算机内部采用二进制来表示程序和数据。
  • 硬件系统基本组成原理及工作原理如下图所示
    在这里插入图片描述

2、硬件各部分详解

1、运算器

  • 运算器(Arithmetic Logic Unit,ALU)又称算术逻辑单元,计算机中执行各种算术运算逻辑运算操作的部件,后者常被忽视,但恰恰是逻辑运算使计算机能进行因果关系分析。一般运算器都具有逻辑运算能力。算术运算是指加、减、乘、除及它们的复合运算。而逻辑运算是指“与”、“或”、“非”等逻辑比较,逻辑判断和“移位”,“比较”,“传送”等等操作。在计算机中,任何复杂运算都转化为基本的算术与逻辑运算,然后在运算器中完成。

2、控制器

  • 控制器(Controller)是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
  • 控制器是计算机的指挥系统,计算机的工作就是在控制器控制下有条不紊协调工作的。控制器通过地址访问存储器,逐条取出选中单元的指令,分析指令,根据指令产生相应的控制信号作用于其它各个部件,控制其它部件完成指令要求的操作。上述过程周而复始,保证了计算机能自动、连续地工作。

CPU

  • 一般把运算器和控制器做在一块集成电路芯片上,称为中央处理器,简称为CPU(Central Processing Unit)。它是计算机核心和关键,计算机的性能主要取决于CPU。它控制了计算机的运算、处理、输入和输出等工作。
    在这里插入图片描述

3、存储器

  • 存储器(Mmory)是计算机中具有记忆能力的部件,用来存放程序或数据。程序和数据是两种不同的信息,应放在不同的地方,两者不可混淆 。指令总是送到控制器,而数据则总是送到运算器。存储器就是一种能根据地址接收或提供指令或数据的装置
  • 存储器可分为两大类,即内存储器和外存储器。
1、内存储器
  • 内存储器简称内存,又称主存,是CPU能根据地址线直接寻址的存储空间,是计算机内部存放数据的硬件设备,是程序和数据存储的基本要素,由半导体器件制成。内存中存放数据是以相应的内存单元为单位进行存放的,内存单元的大小可以是一个字节,也可以是多个字节,每个内存单元都有一个编号,它表示该内存单元所对应的内存地址。内存的特点是存取速度快,基本上能与CPU速度相匹配。
2、外存储器
  • 外存储器简称外存,它作为一种辅助存储设备,主要用来存放一些暂时不用而又需常期保存的程序或数据。当需要执行外存中的程序或处理外存中的数据时,必须通过CPU输入/输出指令,将其调入内存中才能被CPU执行处理,所以外存实际上属于输入/输出设备。
3、拓展
  • 现代计算机系统中广泛应用半导体存储器,从使用功能角度看,半导体存储器可以分成两大类:断电后数据会丢失的易失性(Volatile)存储器和断电后数据不会丢失的非易失性(Non-volatile)存储器。微型计算机中的RAM属于可随机读写的易失性存储器,而ROM属于非易失性(Non-volatile)存储器
4、存储器工作原理
  • 为了更好地存放程序和数据,存储器通常被分为许多等长的存储单元,每个单元可以存放一个适当单位的信息。全部存储单元按一定顺序编号,这个编号被称为存储单元的地址,简称地址。存储单元与地址的关系是一一对应的。应注意存储单元的地址和它里面存放的内容完全是两回事。
  • 对存储器的操作通常称为访问存储器,访问存储器的方法有两种,一种是选定地址后向存储单元存入数据,被称为“”;另一种是从选定的存储单元中取出数据,被称为“”。可见,不论是读还是写,都必须先给出存储单元的地址。来自地址总线的存储器地址由地址译码器译码(转换)后,找到相应的存储单元,由读/写控制电路根据相应的读、写命令来确定对存储器的访问方式,完成读写操作。数据总线则用于传送写入内存或从内存取出的信息。
    在这里插入图片描述

4、输入设备

  • 输入设备(Input Device)向计算机输入数据和程序的部件。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中,进行存储、处理和输出。
  • 常见种类
  1. 字符输入设备:键盘;
  2. 光学阅读设备:光学标记阅读机,光学字符阅读机;
  3. 图形输入设备:鼠标器、操纵杆、光笔;
  4. 图像输入设备:摄像机、扫描仪、传真机;
  5. 模拟输入设备:语言模数转换识别系统

5、输出设备

  • 输出设备(Output Device)是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。
  • 通常我们将输入设备和输出设备统称为I/O设备(Input/Output)。它们都属于计算机的外部设备。

3、软件系统的组成及分类

  • 软件(software)国标中对软件的定义为:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
    其它定义:
    1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。
    2.程序能够满意地处理信息的数据结构。
    3.描述程序功能需求以及程序如何操作和使用所要求的文档。
    以开发语言作为描述语言,可以认为:软件=程序+数据+文档

1、系统软件

  • 系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。这类软件一般与具体应用无关,是在系统一级上提供的服务。系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。另一类是面向用户的软件,如各种语言处理程序(象VC、CB等)、实用程序、字处理程序等。
  • 系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

2、应用软件

  • 应用软件是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。如财务报表软件、数据库应用软件等。初学C语言的读者主要任务是学习如何编写应用软件。

4、硬件与软件的关系

(1)硬件和软件互相依存。

  • 硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的惟一途径, 软件是用户与机器的接口。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。

(2)硬件和软件无严格界线

  • 随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有绝对严格的界线。

(3)硬件和软件协同发展。

  • 计算机软件随着硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切地交织发展,缺一不可。

三、进位计数制及其转换

  • 在现在的日常生活中,数值、文字、声音、图形等各种形式的信息,需要使用计算机加工处理是,必须按一定的法则转换成由“0”和“1”两个符号组合的二进制数。
  • 数码:表示数的符号(比如10进制中的0,1,2,3,4,5,6,7,8,9这10个数字符号)
    基数:数码的个数(比如10进制就是基数为10)
    权 :每一位所具有的值(比如10进制中10^i为该数字的权)
数制 十进制数 二进制数 八进制数 十六进制数
数码 0~9 0~1 0~7 0~9,A~F,a~f
10 2 8 16
10^i 2^i 8^i 16^i
表示 右下角标注10或D,比如 ( 123.45 ) 10 {(123.45)}_{10} (123.45)10 右下角标注2或B 右下角标注8或O,在C语言中在数的前面加0 右下角标注16或H,在C语言中数的前面加0X或0x
特点 逢十进一 逢二进一 逢八进一 逢十六进一

注意:二进制运算规则简单,便于电路实现,它是数字系统中广泛采用的一种数制。但因用二进制表示一个数时,所用的位数比用十进制数表示的位数多,人们读写很不方便,容易出错,因此常采用八进制或十六进制。 C 语言程序设计中就经常会用到这两种进制。

1、二进制数转换为十进制

  • 二进制转换为十进制是比较方便的,只要将二进制数写成按权展开,并将式中各乘积项的积算出来,然后各项相加即可。
  • 例如
    ( 11010.101 ) 2 {(11010.101)}_{2} (11010.101)2
    = 1* 2 4 {2}^{4} 24 + 1* 2 3 {2}^{3} 23 + 0* 2 2 {2}^{2} 22 + 1* 2 1 {2}^{1} 21+0* 2 0 {2}^{0} 20+1* 2 − 1 {2}^{-1} 21+0* 2 − 2 {2}^{-2} 22+1* 2 − 3 {2}^{-3} 23
    =16+8+2+0.5+0.125
    = ( 26.625 ) 10 {(26.625)}_{10} (26.625)10
  • 同时,八进制,十六进制转化为十进制也是如此,在此不再举例。

2、十进制数转化为二进制

  • 十进制的数转换为二进制,要分为整数部分转换和小数部分转换。下面来举例介绍他们的转换方式。
  • 比如说 ( 117.8125 ) 10 {(117.8125)}_{10} (117.8125)10转换为二进制数,

1、整数部分转换

( 117 ) 10 {(117)}_{10} (117)10;

除以2 余数 所占位
117/2 = 58 a 0 {a}_{0} a0=1 最低整数位
58/2 = 29 a 1 {a}_{1} a1=0
29/2 = 14 a 2 {a}_{2} a2=1
14/2 = 7 a 3 {a}_{3} a3=0
7/2 = 3 a
  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值