计算机组成原理之信息传输(五)

目录

前言

一、二进制之间的转换

短除法

二、二进制的表示方式

用二进制表示字符串

三、如何通过0,1实现传输信息

电报如何传递信息的


前言

众所周知,现代计算机都是用 0 和 1 组成的二进制来表示所有的信息。

那么文本字符串是怎么表示成二进制的?

键盘中输入与显示器中输出的又是怎么实现的呢?

特别是时常遇到的乱码究竟又是怎么回事儿?

计算机在硬件层面究竟是怎么表示二进制的?


一、二进制之间的转换

   短除法

    比如,我们想把 13 这个十进制数,用短除法转化成二进制,需要经历以下几个步骤:

    因此,对应的二进制数,就是 1101。


二、二进制的表示方式

计算机中的有符号数有三种表示方法,即原码反码补码

三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同 。

在计算机系统中,数值一律用补码来表示和存储。

为何在计算机系统中一律采用补码的方式来表示和存储呢?

  • 1. 使用补码,可以将符号位和数值域统一处理;
  • 2. 加法和减法也可以统一处理 。例如用补码来表示负数,使得我们的整数相加变得很容易,不需要做任何特殊处理,只是把它当成普通的二进制相加,就能得到正确的结果。
  • 3. 原码表示法有一个很直观的缺点就是,0 可以用两个不同的编码来表示,1000 代表 0, 0000 也代表 0。还浪费了一位。

用二进制表示字符串

最早计算机只需要使用英文字符,加上数字和一些特殊符号,然后用 8 位的二进制,就能表示我们日常需要的所有字符了,这个就是我们常常说的 ASCII 码(American Standard Code for Information Interchange,美国信息交换标准代码)。

ASCII 码解释:该表是用十六进制表示的,比如,小写字母 a 在 ASCII 里面,就是第 97 个,也就是二进制的 0110 0001,对应的十六进制表示就是 61。这个表就像字典,每个字母或数字、符号都能在表中找到对应的表示方法,通过这些对应关系,便可以组合成我们所需要表示的相关信息。随着计算机的发展,计算机需要引入新的语言如中文、韩文等,因此便需要产生类似ASCll的字典表产生。日常说的 Unicode,其实就是一个字符集,包含了 150 种语言的 14 万个不同的字符。

可以用二进制表示任何信息,其中的转换如下图所示:

简单来说就是发明一套与中文或任意语言的字符集一一对应的二进制编码,然后再把其对应的规则告诉大家,当大家拿对应的编码后再进行一一对应解码便可。

出现乱码其实本质就是编码与解码方式不一致。


三、如何通过0,1实现传输信息

     信息传递的发展史

  1. 人传口信或者送信的方式,古代的驿站
  2. 中国古代的军队有“击鼓进军”和“鸣金收兵”,通过打鼓和敲钲发出不同的声音,来传递军队的号令
  3. 海上的灯塔、长城上的烽火台

    上述这些传递方式都有一个问题就是难以传送复杂信息。因些电报的发明便出现了。

 

电报如何传递信息的

硬件组成:电报机本质上就是一个“蜂鸣器 + 长长的电线 + 按钮开关”。蜂鸣器装在接收方手里,开关留在发送方手里。双方用长长的电线连在一起。一个摩尔斯电码的电报机如下图:

 逻辑图如下所示

 

   信息解析:电报机只有一个按钮,按下就是输入信号,按的时间短一点,就是发出了一个“点”信号;按的时间长一些,就是一个“划”信号。然后双方通过类似二进制方式的编码形式来制定一一对应的解码信息。

 

如何解决电信号传输距离有限呢

   为了能够实现接力传输信号,在电路里面,工程师们造了一个叫作继电器(Relay)的设备。

   对于继电器的作用可以理解成古代的长距离送货中途的驿站,类似与先将货物送到一个点,然后再让该驿站该货物原样一个个点送下去。中继器原理图如下所示:

 

中继,其实就是不断地通过新的电源重新放大已经开始衰减的原有信号。有点类似我们平常用的wify加强器或手机信号增强器。

可通过中继器进行组合成与、或、非电路。从而打造出更加便捷及多样的表达方式。

例如在输入端的电路上,提供串联的两个开关,只有两个开关都打开,电路才接通,输出的开关也才能接通,这其实就是模拟了计算机里面的“与”操作。

常见的门电路有如下这些:

回到我们前面看的电报机原型,虽然一个按钮开关的电报机很“容易”操作,但是却不“方便”操作。

因为电报员要熟记每一个字母对应的摩尔斯电码,并且需要快速按键来进行输入。一旦输错很难纠正。

但是,因为电路之间可以通过与、或、非组合完成更复杂的功能,我们完全可以设计一个和打字机一样的电报机,每按下一个字母按钮,就会接通一部分电路,然后把这个字母的摩尔斯电码输出。

而这些门电路,也是创建 CPU 和内存的基本逻辑单元。对于计算机二进制的“0”和“1”的操作,实质就是操作门电路,叫作组合逻辑电路。

今天包含十亿级别晶体管的现代 CPU,都是由这样一个一个的门电路组合而成的。如下图所示CPU中的ALU(算术逻辑单元 Arithmetic and lLogic Unit)的组成就如下图所示:

 

注:极客时间徐文浩老师的深入浅出计算机组成原理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值