热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

计算机主机的奥秘,计算机的奥秘原来这么简单(一)

要学习计算机的基础知识,真正理解计算机的组成原理和工作过程往往是一件令人头痛的事,即使对计算机专业的学生来说,也并不轻松。所以小编决定用几

要学习计算机的基础知识,真正理解计算机的组成原理和工作过程往往是一件令人头痛的事,即使对计算机专业的学生来说,也并不轻松。所以小编决定用几篇文章深入浅出的讲述一下计算机原理相关的知识,并通过数字逻辑电路以及存储器,微处理器的形成、组织及发展阐述一下编码的实现。本系列接下来还涉及到计算机系统,编程语言的发展,对计算机图形化的相关技术也做一些简单的描述。

什么是编码

我们都知道,了解计算机最基础的知识,首先要知道什么是编码或代码。编码通常是指一种在人和机器之间进行信息转换的系统(体系)。换句话说,编码便是交流。有时我们将编码看成是密码(机密),其实大多数编码并不是。大多数的编码都需要被很好地理解,因为它们是人类交流的基础。

我们用嘴说出的每个词语每句话,这些可以被那些听得到我们声音,理解我们所用语言的人所听懂,我们称这种编码为“语音”。还有一种编码方式,那就是我们在印刷的纸质材料上看到的字符,称之为“书面语言”。在许多语言中,语音和文字间有很强的联系。

同样的,在计算机中也使用了不同的编码来传递和存储数字、声音、音乐、图像和视频。计算机不能直接处理人类世界的编码,因为它不能模拟人类的眼睛、鼻子、嘴和手指来接收信息。尽管这些年来计算机的发展趋势使我们的桌上电脑具有捕获、存储、处理和提供人类交流中所使用的各种信息的能力,而且不论这些信息是视觉的、听觉的还是两者的混合。所有这些信息都要求使用它们自己的编码方式。

摩尔斯电码是随着电报机的发明而产生的,摩尔斯电码能很好地说明编码的本质。

106354959_1

摩尔斯电码对照表

摩尔斯电码的发送易于接收,即使你没有记住摩尔斯电码,也可以方便地借助上面这张按字母顺序排列的表发送。

摩尔斯电码被称为二元码,因为编码中仅含“滴”和“嗒”。这与一个硬币很相似,硬币着地时只可能是正面或反面。二元事物(例如硬币)、二元编码常常用2的乘方来描述。上面所做的对二元编码的分析在数学上的一个分支—组合学或组合分析里只能算是一个简单的练习。传统上,由于组合分析能够用来确定事件出现的几率,例如硬币或骰子组合的数目,所以它常用于概率统计,但它也同样有助于我们理解编码的合成与分解。

摩尔斯电码应用

手电筒是一种大多数家庭都拥有的较简单的电器。拆开一支有代表性的手电筒,你会发现它包括一对电池,一个灯泡,一个开关,一些金属片和一个把所有零件装在一起的塑料筒。

106354959_2

手电筒电路

我们可以通过控制开关的开合来模拟摩尔斯电码里面的“滴”和“嗒”,如果线路够长(不考虑压降),另一个人就可以在很远的地方通过观察灯泡的量灭得到“滴、嗒”组成的信号。那么一个最简单的单向电报系统就做好了。接下来优化一下,就可以得到下图所示的双向电报系统。

106354959_3

电报系统演示图

那么到此为止,我们已经做出了通信改革中的关键性一步。只要搭造更长更长的线路,就可以越过成百上千公里使用摩尔斯电码进行交流。

继电器的出现

事实上发报系统不可能使用灯泡作为信号设备,因为在这里灯泡的实用性不高。而是使用的电磁现象,就是众所周知的继电器。因此实际上电报系统中的电报按键、继电器和发声器大致连接应该是大致如下:

106354959_4

我们知道二进制数与计算机密切相关,而电报继电器可以表示二进制数字。继电器闭合,代表二进制数字1;继电器断开,代表二进制数字0。它是一个开关,但并不是由人工而是借助于电流进行开关操作的。利用这种设备可以做出令人惊奇的事情。事实上,你可以用继电器装配出一台计算机中的大部分部件。但是由于它只能表示二进制数字,所以在使用它之前,我们还要了解什么是二进制数。

二进制数

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。这里不做过多的解释和描述,只通过一个简单的例子,说明一下它在计算机中存在的方式。

在生活中二进制有很多应用,比如条形码。

106354959_5

实际上,扫描仪只识别整个条形码的一条窄带,条形码做得很大是为了便于结算台的操作人员用扫描仪对准顾客选购的物品。扫描仪所看到的那一条窄带可以这样表示:

106354959_6

这看上去就很像摩尔斯电码......扫描仪读到的一串串二进制数,通过规则解码,就得到下面所示的商品数字了。

所以计算机中不会存储信息的表面数据,而是通过编码后,存储对应的二进制数信息,同样的调取信息时,也是通过对二进数的反编码,得到人眼能够看懂的直接信息。

今天了解到计算机中最最基础的一些知识后,下篇就讲一下逻辑门电路、加法机和减法的实现。



推荐阅读
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
  • mybatis 详解(七)一对一、一对多、多对多
    mybatis详解(七)------一 ... [详细]
  • 本文介绍了如何在 SQL Server 2005 中创建和使用数据库快照,包括创建数据库、数据表、插入数据、创建快照、查询快照数据以及使用快照进行数据恢复等操作。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文探讨了数据结构与算法之间的关系,从基本概念入手,逐步解析二者如何相辅相成,共同构建高效的计算机程序。文中结合实际案例,对数据结构和算法进行了详细说明,并提出了一些思考问题。 ... [详细]
  • 探讨如何应对日常生活中的情绪波动和烦躁感 ... [详细]
  • 本文介绍了三种解决 Git Push 冲突的方法,包括创建新分支、手动解决冲突和强行推送。这些方法适用于不同的开发场景,如版本迭代、多人协作和个人开发。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • MyBatisCodeHelperPro 2.9.3 最新在线免费激活方法
    MyBatisCodeHelperPro 2.9.3 是一款强大的代码生成工具,适用于多种开发环境。本文将介绍如何在线免费激活该工具,帮助开发者提高工作效率。 ... [详细]
  • 编程技巧:括号匹配与计算问题解析
    本文详细介绍了括号匹配和计算问题的实现方法,包括代码示例和解释,旨在帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 本文将详细探讨PHP中C的作用,并对比其他编程语言如Java和C的特点及其适用场景。 ... [详细]
  • 开发笔记:前端之前端初识
    开发笔记:前端之前端初识 ... [详细]
  • 我自己做了一个网站图片的抓取,感觉速度有点慢抓取4000张图片可能得用15分钟左右的时间,我百度看用线程可以加快抓取,然后创建了5个线程抓取,但是5个线程是同步执行同样的操作一个图片就 ... [详细]
  • 本文介绍如何在 PHP 中判断文件是否存在,并根据结果控制 HTML 元素的显示与隐藏。如果文件存在,则直接打开;如果文件不存在,则显示一个提示信息并允许用户重新输入。 ... [详细]
  • 本文详细介绍了MySQL故障排除工具及其使用方法,帮助开发者和数据库管理员高效地定位和解决数据库性能问题。 ... [详细]
author-avatar
觴儿_996
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有