00:00
好,我们现在呢,有了二进制,这些进制的基础过后啊,同学们我们来看一下未运算,那现在呢,为大家讲解一下未运算的相关知识。到这来,我们叫未运算。不运算OK,我把它。标一个标题二。标题二。好的,那嗯,微运算位运算是不是在前面我们讲过它这个,呃,有五种位运算,大家回忆一下,在哪个地方讲过的看一下。来看一下啊。回忆一下我们在讲位运算的时候,在哪讲过的,是不是在这提到过一提到过一嘴啊,在这位运算在勾浪里面呢,有五个。对不对,有五个,分别是暗卫语暗卫或暗卫,抑或还有左。左移位运算和右移位运算,那么这个地方呢,我们就来详细的说一下了。因为我刚才讲过,我们在前讲过,这个跟他的二进制有关,所以说刚好呢,现在我们学完二进制再来看就比较轻松了,来我们看一下。
01:07
嗯,那首先呢,还是用一个微运算的思考题,引出我们要讲的微运算,请大家先看下面的代码段回答abcd分别输出什么?你看这里有一个A。一。这个叫。什么呢?位右移位右移两位,请问A等于多少?这边把负一向右面移动两位,请问是多少,其他的以此类推,这个时候千万不要告诉你的面试官说人家写错了啊,所以老师我以前讲过,呃,一大于二,怎么他现在整的是一两个箭头呢,这个叫。位移。对不对,这叫位移运算,好那个呢,现在大家看到这个题是不是有点不知道怎么去做呀。对不对?首先来看这个题,你们现在是不是感觉到好像有点无从下手,无从下手就对了,为什么呢?因为。
02:05
现在还没有具体去讲,在我们的计算机里面,它到底是怎么进行这个操作的,首先把这个问题抛出来,大家先想一想,这是第一个抛出的第一个问题。为盈算啊这个。这是我们我们提出的第一个叫做未运算的几个思考题,未运算的一个思考题。思考题呢,我给同学们先放到笔记里面,就是大家先想一想,这个题应该怎么去做呢?第一部分。就是刚才老师出的这套题。诶,我先把它拿到笔记里面去。对吧?没问题,我们紧接着再来看下面还有一个问题,看这请回答在勾浪中,下面的表达运算符又是什么?比如说二。魏雨山。二。这个货。
03:00
位或三位与13与这个七,五或四负三亦或三等于多少,现在就问你这些结构是多少,你能答上来吗?这些分别是多少?是不是有点感觉无从下手啊?好,这个问题呢,又抛出来了,大家想一想怎么做?又抛出了一个我们的需求。秀抛出来我们一个需求。好,我们接着看啊,这个需求呢,我们也把它放在笔里面去,等到我们把后面的这个规则给它说完了,大家就马上就能做了,待会儿我们再回头来一个回马枪把它拿下。好,嗯,抛出这个问题过后呢,我们就来继续说二进制,这个在我们计算机呃世界里边,它到底是怎么进行运算的?来看这个地方二进制在运算中的说明,二进制是逢二进位的进位制,前面已经说过了是吧?零一是基本运算符,那么注意听这下面几句话,现在的电子计算机技术全部采用二进制。
04:11
因为他只有零一两个数字,非常的简单方便,易于电子方式实现,就说为什么有些同学曾经问过我说老师为什么他计算机它用二进制不用十进制来做呢?原因就是零一它是比较稳定的这种数字,它可以用,用这个适合电子方式出现,比如说咱们这个电波,电波的时候高位低位刚好就可以用零一来表示。那么在计算机内部处理中呢,都是采用二进制来表示的,二进制的单词叫boundary,数字一和零两个组合可以表示任何的数,禁止采用逢二进一。对不对,好,这个二进制你就说了这么多,其实就是一句话,体现出一句话就什么呢?就最后一句话,就是在计算机内部。在。
05:02
在计算机。计算机的这个内部啊,内部运行时,进行运算时,进行运算时,各种运算啊,各种运算时。运算式都是。运算式。都是什么呢?都是。都是,诶怎么回事。都都是。都是以什么呢?二进制的方式。二进制的方式。方式来运算的。其实最终说的这个这个东西,就是最后这一句话管用,明白吧,都是以二进制的方式管用,所以说呢,我先把这句话呢,放在我们的笔记里面去。好,同学们,我放到这儿啊,同学们看一下。这是我们的标题三。我们说明了在计算机的内部呢,其实都是以二进制的方式来进行运算的,那所以说我们前面学的二进制就非常的有用了。
06:10
好,先把这个地方拿到这来,对吧,没毛病吧,下边呢,我们接着来看。接着来看。那在我们计算机里面呢,有三个二进制,三就说二进制有三个特别重要的概念。分别是原码,反码和补码,如果不把这个搞懂啊,实际上我们也很难把刚才的那两个题做出来,就说不把这个搞懂,其实这边的题。这边这个题,还有这个题我们是做不出来的,所以说呢,我们现在呢,必须要对源码,反码,补码这三个概念做一个介绍,听清楚啊,这个很重要。这个是,呃,对,我们去做前面的题非常重要的三个概念。
07:00
那么我们来介绍一下什么叫做繁源码,什么叫做反码,什么叫补码,以此来推。大家看我这个幻灯片说了几句话,我已说总结了六点啊,网上对源码、反码、补码的解释过于复杂,我这里精简成了六句话。六句话哪六句话注意听。对于有符号的数而言,大家都知道在勾浪中呢,它有有符号和无符号数两种,对不对?那么我们现在说的是有符号的数啊,有符号的数对于有符号的数而言呢,二进制的最高位是符号位。零表示正数,而一表示负数。举个例子。同学们,我举个例子,比如说啊,注意听有个一。那么有个一呢?它在它在这个二进制它是怎么表示的呢?比如说我用一个字节,假设我们这个一是个BAT啊,因为如果我用一个int的话,它会它会有八个字节,那八个字节又有64位,我演示起来就很麻烦,假设我用一个字节来表示这个一,那么它会怎么做呢?假设这是一个一。
08:07
那零表示正数,所以他在内存里面就是这样写的,用二进表示是二进制表示就是00000001OK。这就是一。那如果说它是负一呢。如果是负一,它的二进制表示就应该是这样子的,首位为一,表示是个负数000,空格0001。看到这个地方了吧,就说在他这里面呢,它用这个首位来表示它的什么符号位。明白了吗?好,这就是我们所说的第一点,第二点正数的注意听,注意听这句话啊,同学们。正数的,正数的原码、反码、补码都一样。就是说如果你是一个正数,它的源码、反码、补码都是一样的。
09:00
这个没有什么好,没有什么难理解的吧?第三句话,负数的砝码,注意听,负数的反码等于它的原码,符号位不变,其他位取繁。我举个例子。注意听这句话啊,这句话很重要,比如说。一注意听这句话一。它的源码是多少呢?它的源码就是0000。0000101的源码是这个值。大家一定要认真听啊,这是圆码。那么一的反码和补码是什么呢?注意听他的砝码。它的反码仍然是这一部分,为什么?因为正数的反码,原码、补码完全一样,所以它的反码也是这个,当然它的补码呢。也是这个。能理解。那如果是个负一呢,注意听。这很重要啊,如果负一,它的源码是多少呢?
10:03
它的源码就应该是这样写的,10000001啊,这个地方不好意思啊,多写了个一零。好,这个是负一的源码,那负一的反码是多少呢?注意听反码,它的反码就应该是这个值了,就是它的源码符号位不变,其他取反,也就符号位它不变,取他取反。看清楚没有。诶,这个就是负一的砝码。OK。那负数的负数的补码又是等于多少,因为刚才我们讲了,就是就是它的这个正数呢,原码反码三码合一,那负数的反码我们已经知道了,那负数的补码又等于什什么呢?负数的补码等于它的反码加一。那也就是说,如果这样子来推的话,我们这个负一的补码。
11:02
补码就应该是等于吗?等于什么呢?同学们注意听,它就应该等于它的反码加一,那就是相当于变成了这个值。哎,也就是说负一的补码就是这个值。那有些同学老师你搞一个这个补码有什么用呢。这个非常有用,补码其实是特别特别有用的。为什么呢?因为第六句话我总结了,在计算机运行时,都是以补码的方式来运行的。也就是说在计算机在进行这个加减的时候呢,它是用补码的形式来运行的,为什么?因为在计算机事件里面没有减法。比如说我们说一加一,这个在计算机里面是有的,但是如果一减一呢。其实它是在计算机里面,它这样处理的,是一加负一。理解,而我们这个补码刚好可以把负数和整负数和正数合在一起,因此呢,计算机专家后面呢,它就用补码来进行运算的,也就是说我们真实在计算机运行的时候,都是以补码方式运行的,因此这个补码尤为重要。
12:16
听清楚了没有,尤为重要,非常的重要。好,最后一句话,垂听,零的反码、补码都是零。也就说零的反码补码都是零,这个就没什么可说的了,所以说这六这六点同学们一定要非常的清楚啊,非常清楚,那我再总结一下哪一句话,第一句二进制最高位,零表正数,一表负数,这个怎么记呢?有些同学可能有时候记不清楚,到底是零表正数还是一表正数呢,你可以这样记啊,同学们,你把这个一横过来。横,你一是这样写的,横过来不就是这样写了吗?是不是一下就记住了?那零零横过来还是零对吧,所以这样记特别好记,第二个呢,要记住正数的反码补码都一样。
13:02
那就说三码合一,而负数的补码而而而负数的反码等于它的原码符号位不变,其他位取反。下面我举个例子。我举了一些例子,好,这个例子呢,我把它写成小一点的数字。理解这个案例,我就把它标小一点,大家可能看起来清清晰一点,有个有个区分。负数的补码等于它的反码加一,就说如果你要求负数的补码,其实你要先求出它的反码再加一,能理解吗?好,零的反码、补码都是零。最后记住这句话,在计算机运行的时候。都是以不骂的方式来运行的,这点特别重要。很多同学在学二进制的时候没有彻底的搞明白,其实根本原因就是这没搞清楚。OK,好,那现在同学们有了这源码,反码、补码这六个这个知识点,或者或者这个三个六个原则的话,我们再回头来看这个东西,就显得非常轻松,轻松了很多。好,那我先把这一段给我们放到笔记里面去,注意听。
14:07
我先把它放到哦,这已经有了,那我把这段。写到整个拿到笔记里面去啊,同学们看。看清楚了啊,一共有六句话。我把它放到笔记里面去,有了这这个六个知识点以后呢,好,同学们,我们再来去研究位运算就非常轻松了,好,呃,具体这个位运算怎么去做,我们放到下一个视频去讲,关于原码、反码、补码的介绍,我们先说到这里。
我来说两句