00:00
下一个要给他讲的是这个负值运算符,负值运算符呢跟Java几乎也是一样的,就过一下啊有什么呢,加等减等乘等除等取模好这个呢就很轻松往下看一下。有一个细节啊,负值运算符呢,也包含我们的左移。又一暗卫。按位语后复职,按位抑或后复职按位按位或后复职,这个呢,在面试的时候有可能会问到你们它的逻辑的规则,同学们逻辑的规则跟Java是一样的,如果同学们这个地方没有搞懂的话,同学们注意听啊,一定要去把它看一看。为什么呢?因为你们做大数据的时候呢,有些时候为了增快速度,比如说我想让一个数快速的增加两倍,或者是减小两倍,有些程序员喜欢用位移的方式或者移位的方式来进行处理。
01:03
那你这个规则没有搞懂的话,你就去好好看一看,你们当时讲Java技术的时候,老师应该是对这个二进制做了一个说明,尤其要注意对一个复数进行移动过后。这个结果怎么推导出来的,一定要去看他源码、反码、补码的关系,不然的话你一定是搞不清楚的。你看,我给大家举个例子,比如说。这个二看到没有左移后复制。啊,做以后复制,比如说C,你看这个地方,我们这地方做了一个这个这样一个动作,你看这个这个是表示什么意思呢?我们来举一个例子。啊,我们来举一个例子,好,就是负值,我就新建一个包包赋值,这个单词呢,叫assign。Assignment这个单词叫赋值的意思啊,赋值分配或者赋值,那么一般简写成assign,那么这个我写个offer。
02:00
写到这里来。那么我举个例子大家看一下啊,知道我这个这块呢,不做深讲了,因为这个按理说是Java这一块基础的时候,给大家讲的这个基础的东西,我只是提一嘴。走一个。好,我把这个案例往这儿一放啊。Val。呃,我们看这地方是。没有初始化是吗?我看看这边要初始化是吗。哦,对,我先把它初始化一下。比如说va,比如说这个number等于这个。二啊,等于二,然后呢,Number。这样子。好,我们我们来执行一小把,我们来看看这个结果等于多少呢。啊,Number,我们就看一下这个叫做向。
03:01
左还是向右移动啊,这是向左移动,向左移动,我们来看看运行的结果。运行的结果,我们看到它等于了八,为什么等于八呢?哪个同学能告诉我一下?是不是相当于乘了一个二,再乘一个二啊,因为你整体向向左边移动,那你它整个移动一位相当于乘一个二,再移动移位就相当于再乘一个二,所以这个速度其实理论上是最快的。那么这个对于我们来说还是应该能理解的,那假如我像这样再来一下啊,同学们。我想这样子再来一下,比如说这次呢,我移动的方向是右移,右移好,右移的话呢,我们把这个方向改一下。A,改一下,那么现在请同学们思考,目前这个等于几呢?是不是相当于八,它原先移完了过后这个地方是number,它是等于八的,然后你往右边移动,相当于除了一个二,于是它又变成了一个四,好,这个大家注意一下。
04:04
好,我们运行一下可以了。好,这个没问题,这个要小心啊,如果别人问你的话呢,一般不会问这个,这些没有什么可问的,他可能会问一下你的基本功,他会问你为什么这样说,就暗位与后又怎么样,安慰非或又怎么样,这个可有时候真的会问啊,真的会问,尤其是他问的时候,往往不会用正数,他可能用个负二负三。然后问你这个结果是什么,你如果答不上来,他会觉得就是基本功可能稍微弱一点,那同学们也不要着急啊,因为我的时间关系,我没办法再给他讲二进制了,我因为我也不知道咱们在讲Java的时候,老师有没有把二进二进制这个原码,反码、补码,包括复数的这个呃语啊或啊非有没有讲,如果没有讲的话呢,我还是那句话,我把那个二进制那部分分享给大家,你你你就花半个小时就能看懂。就只需要半个小时就彻底明白咱们这个二进制是怎么回事了,好好后后面有有兴趣的同学,到时候我把这个发给大家。
05:06
好,这是负值运算呢,就说到这儿,负值运算我们再看两个案例就行了。负值运算呢?这有交换两个数的值,就是经典的负值运算的案例。比如说A等A等于了一个十,B等于99,那么我要交换,最传统的方法就是用中间变量来进行一个过渡,就A赋给一个临时变量,再把B给A,再把T给B,这是最经典的一种交换。对吧,所以说这个特点是什么呢?负值运算特点是从右向左走,从右向左,一般来讲我们是这样走的嘛,从从左向右嘛,比如说A加B肯定是从左向右,但是负子运算是从右向左,这点大家清楚,第二点负子运算的左边。它左边只能是变量,右边可以是变量,表达式,常量,也就是说后面可以是函数,我在这多讲一句啊同学们,在我们这个SC里面呢,它支持一个代码块返回值。
06:10
在试开中。支持。它支持什么呢?它支持代码块,代码块。代码代码代码块返回一个值,返回值我写个例子啊,比如说我有一个result等于。大括号,你看我写大括号共里面它是。没有东西,你看我这直接写一个90,你看这种写法,说老师你这个写法一个90直接给他就可以了吗?那就意味着将来我这块可以可以写一段代码的返回一子,我先给他打印一下啊,这也是一种赋值的一种行为,但是呢,在Java里面它呃可能没有这么明显啊,我写一个同学们看到。我们打印出来过后,你会看到返回90,那如果将来我这进行一个扩展,我可以写语句在里面的,比如说if。
07:01
我就随便写一个啊,现在我们还没讲衣服,我就示意一下试一下,比如说我这里有一根有一个值,我就用上面那个number吧。如果number,注意听啊,如果大于一,我们就返回一个,呃,哈。返回一个hello OK else else,如果它嗯,就是不大于零呢,我们就返回另外一个值,比如返回一个什么呢,100。你看它,它可以就说这个返回的值,可以根据他的需求返回不同类型,那最后呢,因为我这个number现在是四,说它应该会返回一个哈喽OK,执行一下。执行一下,这就是代码块返回一个值,看到没有它很灵活,那如果说我把这个number我移动狠一点啊。我再移动,我移动二就成,这还不够移动三,诶我问大家NUMBER8在这个集中移动三位变多少了。
08:05
是不是除以二再除以二,再除以二,那就是八除以二变四,四除以二变二,二再除以二等于一,它还是大于一不大于一了吧。是不是他应该返回100了,是不是返回100执行一下,你看这个结果应该会返回一个100没毛病,我就是代码块这个用法啊,在有些时候还是很有意思的啊,这个比较有意思,好的同学们,我们先把这块说到这儿,那么老师呢,这说到这儿了,讲到这句话的时候呢,我举了一个例子。好的,嗯,复合运算等价于下面效果,A加等三等价于A等于A加三,这个跟加法是一样的啊,加是一样的,好,最后还有一个复制运算的面试题,这个题呢,我找一个同学看看咱们班有同学能不能做出来啊,说给了两个变量A和B,要求将其进行交换,进行交换,但是不允许使用中间变量,最终打印这个结果。
09:04
同学们现在呢,打开这个,打开这个这个这个工具啊,你们花一分钟简单写一写,看看大家还能想起来这个怎么写的啊,花一分钟写一下,我也暂停一下视频。我看咱们班同学不但用了一种方法,还有一些同学用这个未运算来解决,很好啊,很好,那么我就评讲一个就行了,把它写写,比如说现在我有两个变量哈,A。A等于十。B啊,我就直接写到这儿吧,干脆。啊,我们来把这两个题进行一个交换。题做一个评奖。好放在这,那现在呢,假设我有两个变量,A等于十,B等于20,现在呢,我们要这样子交换一下就可以了A。对了,这方因因为它要变化,所以说用这个就不行了,哎,对这个就不行了,A等于什么呢?A加B对吧,以前同学们都说先把它的和保存在A这个变量中,然后呢,B就可以这样去处理了,B就等于A减去一个B,是这意思吧。
10:15
哎,因为你想嘛,因为你现在A1,你这个A已经是A加B了,所以它其实是等价于这种写法的,是A加A加一个B,再减掉一个B。那这个不就是相当于,呃,相当于这个结果你A相当于这个就是A嘛,相当于把A给B了嘛,所以这就已经把A给到B了,紧接着呢,你在让这个A再减去一个B,再减去个B,这个效果就是什么呢?因为你这个AA原先。A现在还是没有动,所以A还是A加B。还是A加B,但是这个B呢,已经变成了A,因为你把A给他了,B当然就等于A,所以它相当于A,那这样子就变成B了,就像B给了A,好这个逻辑就这么出来的,当然还有同学呢,可以用这个移位运算啊,用这个位运算。
11:07
用V用位运算位运算这个也可以实现这个呢,同学们去看一下咱们班我看有同学已经做出来了啊,还是不错的,自己去看一看就行了,我这就不运算,我就不说了,好,我把这个题整个这个就就关于我们负值运算呢,咱们就说完了,说完那。呃,同学们休息一会儿啊,休息十分钟,我们再接着讲课。那刚才呢,我们把这个负值运算啊,就说完了,我们把这个笔记简单的给大家进行一个板书,那么刚才我们讲的是负值运算对不对,诶把它板述一下,我们讲了哪些东西呢。第一个我们做了一下基本的介绍。A,负值运算的一个介绍,就是我们标题二,那重点来说,我们说了这么一些东西。介绍,还有它的分类。
12:00
第一个是负值运算的介绍。标题三,然后呢,它的分类,它有一个分类,分类呢重重点就是这么写。诶,刚才我们说的像这一系列的,这是常规的负值运算,就是以前我们用的比较多的。这是一类,还有一类呢,就是我们的位对吧,像这个移位呀,或者右移呀,左移呀,安位货呀等等等等,那么这一块呢,也是我们的复制运算。啊,复制运算的一部分。然后呢,这个说完了以后呢,我们就给他家做了一个案例演示和它的一个特点,把这块呢,我们就拿过来,把代码放过来就可以了,好首先我们拿了一个案例演示,案例演示交换了两个值,对吧?交换两个值呢,我们把这个代码给大家放过来,刚才我们写了这么一个案例。诶把它拿过来这个地方,我们讲了这个案例啊反过来。诶,把它翻过来就可以了。插入。
13:02
好负子运算的特点,负子运算的特点呢,在这我们看一下它有三个特点,反述一下三个特点来第一个。啊,第一个运算呢,是从右对向左对吧,复制运算左边复合运算效果OK了。好,那这一块就是负值运算,还有两这个题我们刚才也讲了,下面呢,呃,这个我们就截段视频。
我来说两句