Assembly: 计算机原理
- TAGS: Assembly
计算机原理
简谈计算机
计算机属于计算机科学与技术这个领域,它是一门科学,我们要以什么样的心态来学习? 我们可以先看看下面的视频:
人类发明计算机的时候,根据计算机的特性为它设计了最早的计算机语言——机器语言
这门语言的组合很简单只有0和1两个数字,也是计算机会的唯一一门语言。
假设要让计算机把11和22进行相加,编程人员需要对计算机“说”:“001001001110001111001。” 计算机就明白啦,原来是让我把11和22进行相加。
研究计算机的前辈大牛们觉的机器语言太不好用了,也不知道折腾了多久,出了 汇编语言
。
如果用汇编语言对计算机说,把11和22进行相加,那就容易多了。
mov ax,11 add ax,22
ax是计算机内部一个存数字的“小盒子”,它有一个专业的名词叫做“ 寄存器
”,有没有想到超市里面临时存东西的柜子,一个道理。
因为计算机只懂机器语言,所以,大牛们又设计了一种程序,叫做“ 汇编器
”。汇编器相当于一个翻译,把人类写好的汇编代码翻译成机器语言,这样子计算机就听懂了。
汇编语言的每一行语句都和机器语言相对应,所以汇编语言,我们可以理解成人类能够直接看懂的“机器语言”。
这个过程听起来简单,但其实非常不简单。
但人类还是嫌麻烦,能不能更简单一点。
于是又设计了一些编程语言,我们就拿其中的 C 语言
做代表吧。
11+22
那计算机自然就更听不懂了,于是前辈们又设计了一种程序,叫做“ 编译器
”。
- 编译器负责把高级语言翻译成汇编语言。
- 汇编器再把汇编语言翻译成机器语言。
回忆数学
数学上定义:
- 负数:指比0小的数。
- 正数:指比0大的数。
而0既不是正数,也不是负数。
有的数位于两个整数之间,既比1大,又比2小,位于两者中。
千位分隔符:整数部分从个位到高位每三个用一个逗号
- 100,034.36代表是十万三十四元三毛六。
- 1,000,000 代表一百万
- 1,000,000,000 代表十亿。
当然,这是在金额计算方面常用的数字表示法,还有其他表示法。
\(72400000=724 \times 10 \times 10 \times 10 \times 10 \times 10 = 724 \times 10^5\)
而有一些数字比0大,但是又比1小。比如0.00297。像这样的数字,你可以写成 \(297 ÷ 10 ÷ 10 ÷ 10 ÷ 10 ÷ 10\) 也可以写成 \(0.297 ÷10 ÷10\)
甚至你可以写成其他多种形式。比如 \(297 ÷ 10^5\) 或者 \(0.297 ÷ 10^2\) ,甚至还可以写成分数形式 \(\frac{ 297 }{ 10^2 }\),或者 \(0.00297 = 297 \times 10^{ -5 }\)
范例: 400 x 0.0037
\(400=4 \times 10^2\)
\(0.0037=37 \times 10^{ - 4 }\)
\(\frac{\quad 4 \times 10^2 \\ \times \ \ 37 \times 10^{-4}}{148 \times 10^{-2}}\)
电子
电已经快上升到了像空气、食物、阳光等一起成为当前人类必需品的位置高度,如果没有电,我们统统都要下岗,改行。
也许读书时,我们听老师讲过,分子,但是还有比分子更小的原子。 比原子更小的原子核,比原子核更小的质子,比质子还小的单位夸克,比夸克还小的……
从微观的角度来理解我们的生活: 我们就是由无数的原子组成。
我们走路,就是一堆可移动的原子。 我们每天吃原子,喝原子,享受原子,往垃圾堆里面倒原子。
原子核中有质子、中子,质子中子里面有夸克。
核聚变就是小质量的两个原子核合成一个比较大的原子核,核裂变就是一个大质量的原子核分裂成两个比较小的原子核,在这个变化过程中都会释放出巨大的能量,前者释放的能量更大。
原子核的外面,是围绕它的核外电子,简称电子。 我们生活中的电的产生,就是电子的移动。
原子之间的粘连,如果没有粘连就相当于一盘散沙。 原子与原子之间共用电子层,因为电子是不断围绕原子核轨道旋转。
每个原子外层的电子会因为轨道旋转的时候,会进入另外一个原子的轨道。 也因为电子和原子核之间有引力作用。
所以,原子与原子之间共用的电子就紧紧的把原子拉扯在一起了。
原子之间公用电子来形成各种各样的物质,并不是一件轻而易举的事情。 否则,我们穿一件衣服,衣服就会和皮肤融合在一起。 坐在凳子上,凳子就和屁股融合在一起。
正常情况下,电子不会无缘无故的从原子里面跑出来,因为原子很稳定。 电子的共用总是只在相邻的原子之间进行。
与绝缘体相反,在导体里,通常用于共用的电子都不太安分。 很容易离开自己的岗位,如果别地方原子少了电子,它就会迫不及待的跑到那个原子的轨道上。
这些不守规矩的电子,叫做自由电子。
电压
电压的本质就是,一个地方电子多,一个地方电子少,差距越大,电压越大。 当形成电路闭合之后,电子多的地方就会朝电子少的方向进行移动。
当时的前辈们认为电流的方向是从正极到负极,直到发现了电子流动方向是和想象的电流方向相反的。
电压越大,说明电子不对等的数量越多。(电势差)
电压越大,那么对导线的质量就要越高,或者说导线导电率越好、直径约粗越好。
功率 / 电压 = 电流
电源的作用是产生持续的电压和电流。 并且电源不能制造电子,只是负责让电源两边电子数产生不平衡,电势差,从而开始流动。
欧洲大部分也是220v,日本和美国和少数欧美是110v,使用电压的确定是根据各国的具体国情来决定的。 中国考虑到了这个因素采用220V。110V的电压还是要比220V的电压要安全的。
拓展
电流会对人体造成热效应,化学效应,和机械效应。
热效应指的是发热,烧伤,不仅仅是表皮烧伤,体内器官烧伤爆炸。 化学效应指电流会破坏人体的化学反应,造成内环境失控。比如大脑神经元会被干扰,造成丧失意识,休克等症状,严重时会破坏大脑结构造成瘫痪和死亡。心肌受到干扰,造成心室纤维性颤动,严重时导致心跳骤停。 机械效应指电流会吸附周围的金属蒸汽或离子,使之渗入细胞造成损伤。电流还会刺激肌肉不正常收缩,也就是被电之后抽搐的反应,严重时可拉伤肌肉,导致脱臼骨折,肌肉断裂。
电阻
电流的本质我们知道了是电子的定向流动。 电流之所以能够在导线中流动,也是因为在电流中有着高电势和低电势之间的差别。
这种差别从微观的角度去理解称为电势差,从宏观的角度去理解叫电压,换句话说。 在电路中,任意两点之间的电势差称为这两点的电压。通常用字母V代表电压。
人为规定是失去电子的物体带有正电荷,得到电子的物体带有负电荷。 严格来说电荷不是实在的物质,但依存于物质。
所以,为什么有的导线很粗,有的很细。 因为要求流过的电子数区别。
如果一个较细的导线,流过太大的电流,电子移动的时候会发热,就容易着火,跟短路很相似。 而较粗的导线,就可以承受住大量的电子移动,不容易发热。
有的物质中,原子对他们电子束缚能力很强,相对导体电子的活跃性,这类型物质我们可以称为绝缘体。
所以电阻的本质:就是原子核对电子束缚能力(吸引能力)。
电生磁
用一根比较长的普通钉子,它本身不吸引别的东西,用细导线绕圈。 导线不要采用裸线(必须有绝缘皮),否则当它们绕在钉子上,匝与匝(圈与圈)之间会因为被铁钉短路而失去效果。
如果一层绕不下可以往回绕,这样可以绕很多层。
当我们接通电源的时候,就会产生磁力,可以吸引一些金属。
这个,我们可以称它为 电磁铁
。
电生磁,磁生电,电和磁几乎是不可分离的共生体,这是人类实践的真理。 有电的地方就有磁场,在电磁现象的基础上,人类可以利用电磁互相转换的现象原理,进行发电。
后来还发现了 电磁波
,电磁波的发现奠定了人类 无线通信技术的基石
。
使得我们今天可以很轻松的传递信息,想念家人朋友了,一个微信,一个视频就可以跟地球的另一端语音,视频。
摩尔斯电码
摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个字符间短的停顿(在点和划之间)、每个词之间中等的停顿以及句子之间长的停顿。
编码的过程,是由"意识"转换成“语言”。通过大脑控制声带进行震动,空气就是声音传播的介质。你的耳朵听到这个“声音”之后,会把“声音”解码“意识” 成为意识之后,你的大脑可以控制身体去完成这个“意识”包含的“行为动作”。
意识 --> 编码中文普通话声音 --> 发送 --> 传播介质 --> 接收 --> 解码中文普通话声音 --> 意识 --> 解码成行为
必须得理解这个思维过程,因为我们计算机中编码、解码的概念无处不在。比如我们手机通讯的过程、网络传输的过程。而且编码和解码的标准必须是一致的,可逆的,无法正确解码的信息对于我们来说,就没有意义。
在计算机中,有各种各样的编码规则。比如
- 把图像编码成jpg、png、gif、bmp等。
- 声音文件编码成mp3、wav、mid、wma等。
- 视频文件编码成dvd、vcd、mp4、3gp、avi、flv、mov等。
拓展:
这个过程也可以理解为“监听”,“监视”的原理就是在传播环节中进行插入并且破解解码规则就能分析出正确的信息,甚至进行数据的伪装发送。(社会工程学) 有一种骗术,可以利用一种手机把手机号码变成任意人的号码进行拨打。
英语母语者之间的交流
美国人 --> 意识 --> 编码英文声音 --> 发送 --> 传播介质 --> 解码 --> 解码英文声音 --> 意识 --> 美国人
美国人与中国人
美国人 --> 意识 --> 编码英文声音 --> 发送 --> 传播介质 --> 解码 --> 解码英文声音 --> 中文声音 --> 意识 --> 美国人
有的人学了几年英语,跟老外交流的时候,听不懂老外说话,但如果老外说话放慢速度,就能听懂了。这就称为“解码能力不足”。
如果长时间生活在一个英语环境,习惯之后,就能直接把英文声音直接解码成意识,这样子听说英语的水平自然就提高了。
信息的发送可以通过光,电磁波,也可以通过声音,甚至通过触摸、味道、温度。 无论是光、还是声音或者其他介质,都是承载着信息。
如:旗语、条形码、二维码
继电器
可以很简单粗暴的把它理解为:“让电路继续通电的一种机器。”
理解了前面课程中的“摩尔斯电码”,便可以搭建一个简单的电报系统了。
这个原理很简单:利用之前复习过的电磁现象原理的特性加上机械弹簧,组合成了一个发声装置。 这个装置并没有什么新奇的地方,但如果在衔铁臂上安装一支笔,并在笔的下面放一卷纸。有规律的连续按动开关,就会在纸上留下摩尔斯电码了 这就是摩尔斯电报装置的核心原理,当然除此之外,电报的发送方和接收方各有一张一致的电码表。(用于发送编码和接收解码使用)
磁生电
既然电流能够产生磁场,那么反过来,就像水能结冰,而冰自然也能化成水,那么磁场能不能变成电流呢?
先制作一个大的空心线圈,把它的两段接到一个电流计上,将一块磁铁插入线圈中,观察电路中是否有电流产生。 电流计是一个检测电路中有没有电流通过的装置,当有电流通过时,它里面的指针会发生偏转。
磁生电的意义是非常重大的,对人类进入电气时代有了很大的帮助。 通过电磁铁代替永磁体加上蒸汽机产生机械能进行转换,就可以实现大功率的发电。 无论是核电、火电、风电、水电本质都是把各种能量转换成机械能切割磁感线产生电流,从而实现发电。
包括我们身边的变压器,也是利用“磁生电、电生磁”的原理制成的电气设备。 有兴趣的朋友可以详细通过百度搜索相关关键字进行学习深入。
电话
摩尔斯电报只能传递文字信息,而且还得用电码表翻译出来才能知道是什么内容,这个过程一开始还必须是人工去编码解码。
接下来人们自然会想,能不能用电线和电流来传递声音呢?要想知道这个问题的答案,只需了解一下我们是如何听到声音的。
人的耳朵之所以能听到声音,据说是耳膜将声波的振动转换成了生物电。生物电刺激大脑中负责听觉的区域,我们就听到声音了。与此相同,为了用电流来传递声音,也需要将声音转换成电流,这就要用到一个叫话筒的东西。
话筒的构造很简单,主要是一个线圈和一个磁场。线圈位于磁场中,并和一个纸片或者塑料片相连。说话或者唱歌的时候,由于声波的作用,纸片也被迫振 动,从而带动线圈在磁场中运动,并产生强弱不同的电流。
话筒产生的电流,其波形和产生它的声波一致,所以通常称为音频电流。为 了能听到远处的人在说什么,还需要制造一种东西把电流还原成声音。在电学上, 这种东西就是扬声器,俗称“喇叭”。
当声音电流通过线圈的时候,线圈会产生或强或弱的磁场。线圈本身就位于一个 磁场中,两个磁场相互作用,不是互相吸引就是互相排斥。
线圈是可以动的,而磁体却是固定的,它们斗争的结果是线圈带动纸片随着声音电流的变化而不停地 运动,从而使外部的空气也跟着振动,我们就听到声音了。
爱迪生发明的这个装置像个小碗,中间填满了用优质无烟煤提炼的碳精砂。 在碗口上,有一层金属膜,可以导电,但主要用来接收声波。 这个装置不能自己产生电流,所以需要串接一个电源,一头接碗,一头接金属膜。 当你对着它说话时,由于金属膜的振动,它内部的碳精颗粒会随着声波的变化时 而紧密、时而疏松,从而使这个装置的电阻不停地变化。结果,正如你能想象得到的那样,整个电路的电流也会不停地发生变化。就是说,声音己经被转变成电流了
交流电
特斯拉给我们一个警示:如果热爱技术,想一心钻研技术,一定要通过其他渠道给自己创造一个相对好点的经济环境,否则梦想还是往后放一放,不然实在太苦了,特别是在当代生活压力下,如果有了配偶和儿女,不仅自己苦,还会让家人跟着苦
与直流电不同,交流电的方向和大小都是不断变化的。
首先来看看直流电,它的典型代表就是干电池。为了绘出它的图像,只需找来一节电池,每隔一段时间(比如1秒钟)测一次电压,这样就能得到一组数据:
第1秒 1.5V 第2秒 1.5V 第3秒 1.5V 第4秒 1.5V 第5秒 1.5V
为了将这些数据绘成图形,我们通常要使用坐标系统,创立它的人是大数学家笛卡儿,所以也称为笛卡儿坐标系。1619年,当这位天才躺在医院的病床上,只能百无聊赖地瞪着天花板的时候,也没忘了关心一下趴在上面的那只苍蝇—— 他想,如何知道这只苍蝇的位置呢?突然间,他想到把整个天花板均匀地打上格子,苍蝇的位置也就确定了。笛卡儿坐标系统由水平和垂直两条线组成,分别叫做横轴和纵轴。
现在我们测量电压的单位是秒,假如继续缩小每次测量的时间间隔,而且这个间隔足够小的话,这一个个的点就会挤在一起,形成一条直线,这就是直流电的电压图像。我们省略了横轴上的时间点,它们已经不重要了。
我们知道,磁可以生电,这称为电磁感应。交流电通常就是在大型发电厂里用电磁感应的方式产生的。
为了产生交流电,需要把导体放到一个磁场中。在磁铁的两极之间放有一根导线。需要指出的是,发电厂决不会用一根导线放在磁场里发电,这发不出多少电。实际上,它由一个绕了无数匝的巨大线圈,外加一个磁力很强的大磁场组成。为了持续地产生电,最好的办法就是让导线在磁场中不停地旋转——用物理上的术语来说——做圆周运动。这样做有个好处,那就是可以方便地用水轮或者风车来驱动。
变压器把交流电的电压升高,比如升到50kV(千伏),然后通过高压输电线路送出去,这样电力的损耗就会大大降低。
其实变压器的原理非常简单。拿一个铁框,然后用绝缘导线在它的两边分别绕上线圈。左边的线圈称为初级线圈,右边的称为次级线圈。很容易想象,如果把初级线圈接在交流电上,这个东西实际上就成了一个电磁铁,而且非常特殊的是因为交流电的性质,决定了这个电磁铁的南北极和磁场强弱都在不停地变化着。 如果初级线圈有1000匝而次级线圈有5000匝,那么在次级就能获得比初级高5倍的电压,这相当于升压: 反之,如果初级有5000匝而次级有1000匝,则次级的电压就是初级的1/5,这相当于降压。
无线电
最开始,电报和电话都采用电线或者电缆来进行远距离通信,但这是一个非常不容易的事业: 需要花费大量金钱,而且很难增加通信距离一我们知道,导线越长,它所具有的电阻就越大,这对发送和接收设备都是个考验。
通常,无线电波又叫电磁波,尽管看不见摸不着,但它就在你的身边飞舞,在你的身上感应出微弱的电压。
那么,电磁波是怎样产生的呢? 要得到电磁波,最省力的办法是等待闪电。
不过,要想检测电磁波的存在,你还得准备一个收音机,把它打开。当天空中乌云密布、电闪雷鸣的时候,你会听到收音机里发出“喀喀啦啦”的声音,表明闪电的确发出了电磁波,而且你也幸运地把它收到了。
手机上网、通话、发短信时会产生大量电磁波,音响喇叭是由音盆、线圈和磁铁组成,音响的外壳还没有做屏蔽措施,在电磁信号干扰的情况下,音响线圈受到干扰,然后会产生脉冲声音信号。这个脉冲信号被音响电路接受放大送到喇叭,这个时候就会听到音响发出刺耳的声音.
好的消息是天空不是唯一能够产生电磁波的地方,通常其他方法有时候甚至是非常容易的方法,就能产生电磁波。找一部收音机、—节电池,以及一截电线。将收音机调到没有电台的位置,电线的一头与电池的正极相连,然后用电线的另一头在电池的负极上反复地划扫。如果收音机离得不太远的话,你会听到“喀啦”、“喀啦”的声音,这就是说,你自己也能产生电磁波了。
当电磁铁断电时,在开关上竟然拉起了一道明亮的电弧。 也就是说,当电磁铁断电的一瞬间,绕在它上面的线圈产生了非常髙的电压。在电磁学中,这叫做自感。
从严格的电磁学来说,产生自感的原因是在开关闭合或者断开的瞬间,电流的大小急剧变化,从而产生了一个同样迅速变化的磁场,这个磁场反过来在同一个线圈中产生电磁感应。我们已经说过,自感产生的电压是非常高的,通常在开关断开时,产生的自感电压可能是它原来电压的几倍甚至几十倍。这么强的磁场,这么高的电压,它们瞬间产生,又很快消失,就像什么事情也没发生一样。
电磁波又叫无线电波。今天,在我们的周围有着数不清的无线电波,广播、电视、手机信号,这都是常见的。
无线电波所到之处,但凡遇到导体,都要把它的能量分出一小部分来,在导体内产生电压和电流。正是由于这个原因,现今世界上的每一个人,不管是总统还是平民,都是一个个的人肉发电机。但是你也不用害怕,除非你身处于能量非常强大的发射机旁边。一般情况下,你身体的感应电流非常微弱,真的是非常非常微弱,就更不要提产生火花了。
交流电的波形是周期性重复的。导体在磁场中每旋转一周,波形重复一次。在电学里,重复速度称为频率,它的单位是赫兹用 “Hz”来表示。果在1秒里重复了 1次,就称它的频率是1Hz,如果重复了 100次,就是100Hz。
在我国,政府对电力供应的各项指标有统一的规定,其中要求交流电的频率必须是50Hz。这意味着,我们平时所用的电,它在1秒钟之内要经历50次的正 负极翻转和电压起伏。50Hz不算高,但不能再低了,要是太慢,你家里的灯泡就会慢慢亮起来,然后又慢慢暗下去,周而复始。
50Hz是一个低的可怜的频率,就连我们平时说话的声波频率都比它高很多,这样低的频率,事实证明,它只能在导线的周围产生变化的磁场,根本辐射不出去。
要远距离辐射电磁波,除了加大能量之外,还需要提高频率。现在,我们用收音机听到的无线电广播,它的频率在500000Hz以上。接收和发送手机信号的频率则在800 000 000Hz以上。是不是感觉0太多了,不好表示啊,哪里就用单位换算一下。
1KHz(千赫兹)=1000Hz 1MHz(兆赫兹)=1000KHz 1GHz(吉赫兹)=1000MHz
记住,下次用蓝牙耳机打电话、听歌,蓝牙的频率是2.4GHz
数字的起源
而且我们往往教数数:都会先教1~5,接下来6~10,然后是10以外的数字。
因为幼儿在大脑成长期,对这个世界的规则要建立认知和模型,要理解量词,名词之间的关系,当然,他根本不懂什么叫量词和名词。 我们的大脑因为太强大了,它会不断地尝试、反省、学习,成长,甚至你都感受不到它的强大和学习能力有多么可怕,不知不觉就掌握数数了。
常人眼中认为难的一些事情,经过专业训练,都是可以做到的。
Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ、Ⅹ、Ⅺ、Ⅻ
一、二、三、四、五、六、七、八、九、十、十一、十二。
壹 贰 叁 肆 伍 陆 柒 捌 玖 拾
大写数字是中国特有的数字书写方式,利用与数字同音的汉字取代数字,以防止数目被涂改。 历史据考证,大写数字最早是由武则天发明,后经朱元璋改进完善。
历史渊源:
大写数字的使用始于明朝。朱元璋因为当时的一件重大贪污案“郭桓案”而发布法令,其中明确要求记账的数字必须由
“一、二、三、四、五、六、七、八、九、十、百、千”改为
“壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰(陌)、仟(阡)”等复杂的汉字,
用以增加涂改帐册的难度。后来“陌”和“阡”被改写成“佰、仟”,并一直使用至今。
1,2,3,4,5,6,7,8,9,10,11,12
起初一开始用各种各样的符号表示量词。但是随着数字越来越大,量词对应的符号肯定越来越多。聪明的人类,就发明了进制。进制就是数字的一种简写表示方法。
如 10000,十进制也不一定是最佳进制。
十进制数字由10个数字组成分别是0~9
十进制 加法表 1+1=2 1+1=2 1+2=3 2+2=4 2+2=4 1+3=4 2+3=5 3+3=6 3+3=6 1+4=5 2+4=6 3+4=7 4+4=8 4+4=8 1+5=6 2+5=7 3+5=8 4+5=9 5+5=10 5+5=10 1+6=7 2+6=8 3+6=9 4+6=10 5+6=11 6+6=12 6+6=12 1+7=8 2+7=9 3+7=10 4+7=11 5+7=12 6+7=13 7+7=14 7+7=14 1+8=9 2+8=10 3+8=11 4+8=12 5+8=13 6+8=14 7+8=15 8+8=16 8+8=16 1+9=10 2+9=11 3+9=12 4+9=13 5+9=14 6+9=15 7+9=16 8+9=17 9+9=18 9+9=18 十进制 乘法表 1*1=1 1*1=1 1*2=2 2*2=4 2*2=4 1*3=3 2*3=6 3*3=9 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 9*9=81
二进制
二进制没有2,用1和0表示,逢二进一。
binary 二进制
decimal 十进制
十六进制
二进制:0,1
十进制:0,1,2,3,4,5,6,7,8,9
十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
binary 二进制
decimal 十进制
Hex 十六进制
十六进制在计算机中的写法:0x10 10H 或 10h
二进制在计算机中的写法 10b 或 10B
十进制在计算机中的写法 10D 或 10d
布尔代数和逻辑电路
乔治·布尔是一个人名,他的工作对逻辑进行了数理化,并成功创立了一门新的学科:“逻辑代数”。有时候,也称为:布尔代数。
“逻辑乘”,当然从字面意思上还是不好理解,你可以理解成“并且”或“与”或“和”或“and”。
一个命题假设为A,不管A是否成立,它的对立面“非A”。 \(\overline{A}\)
“或”运算的时候,多个或条件中只要有1个成立,那么结果就为 1 。用电路表示的话就是一个并联,任意1个开关闭合,灯泡就能亮起来。
通过生活中最简单的电路,串联和并联就能模拟运行布尔代数,我们把这种电路叫做“逻辑电路”。 赋予了电路一种本身之外的现实逻辑意义。
从布尔代数到人们发现,布尔代数可以用电路来模拟实现表示,这不是一件容易的事情。
非门与门或门
非门有一个输入和输出。 输入和输出的结果永远是相反的。
与门映射的现实逻辑是“并且”。“并且”的条件可以是两个,三个,甚至很多。
或门的输入可以是两个或者更多。
重点:
非与、与门、或门是构建现代电子计算机重要的三个元件。
目前,我们现代计算机中,是使用晶体管来模拟的“非门”、“与门”、“或门”。
接口
一款成品电子芯片,假设有N个输入,M个输出。(当然内部肯定是利用布尔代数设计推导出来的门电路封装设计的) 封装之后,就抽象出了输入输出接口的概念,也会有N个输入管角和M个输出管角。
可以直接设计一个三与门,也可用两个二与门封装成组合成三与门,内部具体实现细节不是在意的重点。 只需要知道某种门电路的(输入输出关系即可)(1和0的组合表,真值表)
(与门,或门,非门)这三种门电路,是逻辑电路中最基础的,如同汉字中的偏旁部首,英语中的26个字母,通过这三门的组合,可以组合出任意复杂度的复合门逻辑电路。
接口是什么?
接口是一种很笼统的统称,可以很广义的理解为:开车的时候,油门,刹车,方向盘都属于接口,接口内部是非常复杂的电路和机械装置。
任何接口都方便,简化了操作,使用的接口人不必关注接口内部复杂的工作原理,只考虑接口的输入和输出对应关系即可,接口内部工作原理技术实现是相关专业人员去考虑的事情。 从而实现了技术隔离,单一的进行更高级的抽象,门电路的内部结构是(门电路工程师需要考虑设计的)。
这就可以非常完美解释了为什么有的人哪怕没学过计算机原理,不懂高级语言、编译器,没学过数据结构,依然可以直接学习某种编程语言的程序设计,学几天甚至完成一些连连看,俄罗斯,贪吃蛇的小游戏。
高级编程语言,相当于一种高级接口,越高级的接口抽象,越接近于现实中人类的行为思考方式。 越高级的接口,自然内部封装的越复杂,在高级接口的外边输入一点信息,内部的很多“层”接口会开始工作,最后汇总,把结果输出。
用高级编程语言写代码,感受不到计算机与二进制有什么关系,与非门、与门、或门有什么关系,机器语言中的0和1体现在哪里?
比如C语言代码:printf("我的第一个程序!"); 通过C语言写好这句代码,传给到C语言编译器,C语言编译器经过一系列复杂的运算分析,转换输出一个复杂的机器语言文件。 操作系统把包含这个“机器语言”信息的“文件”移交给计算机中的CPU“开始执行”,“CPU”就是无数非门、与门、或门的集合体。
异或门
异或电路使用了两个非门、两个与门、一个或门,如果使用继电器去实现这个门电路的话,总共需要八个继电器。 且,所有的继电器都共用同一个电源Vcc,同时,A和B的电压将用来驱动这个电路。
一比特位全加器
+-----------+ --------| A ∑ D |---------- | | | | --------| B | | | --------| D E |---------- +-----------+
- A和B分别代表加数和被加数的一个比特,它们正好在同一列上;
- C代表上一个加法器产生的进位。
- D代表本次产生的进位。 A+B+C
- E代表本次计算的和。 A+B+C
- 希腊字母表的第十八字母(∑) (Sigma),这个符号表示“加”的意思。
这个电路叫做“全”加器,那是不是可能还有“半加器”,猜对了,确实有。 半加器仅仅是把来自被加数和加数的两个比特加起来,产生一个“和”以及一个进位,并不考虑从其他列来的进位。 全加器是实现了二进制加法中每一列的加法过程,所以才叫“全加器”
设计全加器内部结构
\(D = ( \overline{A} BC ) + ( A \overline{B} C ) + ( AB \overline{C} ) + (ABC)\)
\(E = ( \overline{AB} C ) + ( \overline{A} B \overline{C} ) + (A \overline{BC}) + (ABC)\)
原码反码补码
- 加法:全加器的串接。
- 减法:利用数学规律变成加法。
- 乘法:利用数学规律变成加法。
- 除法:利用数学规律变成乘法,再把乘法变成加法。
加法机内部是用全加器进行串接的。
科学家根据正数和负数两种可能性: 分别设计了两种编码解码规则:有符号数,无符号数。正数用0表示,负数用1表示
有符号数计算的时候,一律采用补码模式进行相加计算。
有符号数中,如果一个数大于等于0,那么它的原码、补码、反码全都一样,没有区别。 有符号数中,如果一个数小于0,那么就得进行转换成补码形式。
-3的原码 1000 0011 -3的反码 1111 1100 -3的补码 1111 1101 0000 0101 +5的补码 1111 1101 -3的补码 _____________________________ 10000 0010 +2