00:00
好,那么二进制转化成十进制呢,咱们就说完了,接下来呢,我们说它的一个逆运算。嗯,逆运算的话呢,就是十进制转二进制。十。哎,转化成二进制啊行,嗯,十进制转化成二进制。这个咋转呢?这个呢,比如我来一个。11吧。啊,来个11,来个13也行,13吧。说13呢,这是一个十进制啊,它对应的二进制是几。哎,对,你看啊,这个时候我们的大方向是什么呢?咱们刚才二进制转十进制的时候呢,是不是把它呢,变成了说二的几次幂加上二的几次幂加上二的几次幂,诶相当于呢,我们要把这个13呢,把它拆成二的几次幂的和的方式是吧。对,这是咱们的目的啊,所以有的同学一看说,哎,这个数呢,我使劲一看,我就发现呢,它等于八加四加一。
01:02
哎,它呢是二的三次米,它是二的二次幂,哎,这是二的零次幂,所以呢,就是1101就出来了。啊,这个哎,得使挺大的劲是吧。诶,那我这块呢,来一个说,诶1234。诶,他转换成二进制是几呢?这个估计能吐血是吧。啊,都能上这个最强大脑了都哈,诶那这时候我们就要给一个诶通用的一个规则啊,怎么去做,诶这块呢,我们把这个规则呢,称为呢,叫除二取余的逆。取啊,余,余就是余数的意思啊,余的逆。嗯,什么意思啊,我们呢,拿这个13呢,去除以这个二。哎,这个就放到这儿了啊好,那么13呢,除以二,然后呢商六。于一。哎,这个我这样来表示啊呃,余你把这个余数呢给他,那留下来,这是余一好,那么六呢,再除以二。
02:05
商三。于零,好。那么三呢,再除以二。商一余一。哎,这样好一呢,再除以二。商领。于一。啊,零了再除以二。商陵雨岭。是吧,哎,这时候你就再别再出来没啥意义了,这就一堆零了啊好,然后呢,这个结果完了以后呢,我们把这个结果呢,从下往上看啊,相当于取它的一个逆。哎,逆过来之后呢,这不就是前面一堆零,然后呢,最后呢,就是1101。哎,就这样一个方式,那你要是变成1234呢,你也这样去做。啊,一直呢,把这个余数呢,给它从下往上再去翻译出来,这呢就是对应的二进制。哎,那附数的话呢,你也可以通过类似的这种方式呢,去做这个操作就行啊行,这个呢,就是十进制,哎,转化成二进制的一个操作,哎,大家了解一下就行。
03:06
啊,如果说你说诶,我现在就有咱们代码层面的一个十进制,我就想看二进制长什么样,这个咱们后边那个一进制啊,都有现成的方法,你一调那方法直接就出来了啊。呃,平时呢,咱们一般也没事儿,也不会做这个事儿啊,所以呢,就了解一下就行。好,那么这个呢,我们就说清楚了啊,那么接下来的话呢,我们看看这个,咱们这个呢,毕竟讲究进制之间的一个运算了啊,咱们一共提到了有这四种进制,呃,刚才呢,只是说了他俩啊,你会转化成我,我转化成你,呃,他俩呢,这就两种了,一共呢,我们有四种情况,如果呢,两两之间都要去讲的话呢。这个我们得讲多少种啊。哎。高中的排列组合是吧,应该是A。是。二吧。早都忘没了是吧。
04:00
啊,诶不是C42啊。这是组,这是排列,这是组合是吧?呃,因为呢,就是你转化成我转化成你,这不得是两种是吧。哎,对啊哎,复习一下啊好,这个呢,就是12种是吧,这个有点太累了,而且本来不重要,没必要这样去整了,所以呢,咱们这块有个讨巧的这样啊。看这个图。对,取一个中间的,咱们刚才呢,讲了这个十进制和二进制之间给转化了,讲完了,诶因为十进制呢,我们平时呢,呃最常用二进制呢,又是计算机识别的,所以他俩呢,我们确实花了点时间讲,但是呢,这两个的话呢,呃,八进制呢就很少用了,十进16进制呢,我们还会去用一用,因为我们后边呢,表示这个,比如说在这个堆空间存储这个对象,这个对象的这个所谓的地址值的时候呢,它会用16进制来表示。啊,其实也就这样了啊,我们其实平时用的也比较少,但是在这个时候能看得到是16进制了,行,那我们就呃有必要呢再谈一谈,但是这块再谈的时候呢,咱就不A42了啊,咱怎么着呢,诶我呢就找一个中介的。
05:02
啊,这个中介呢,我们就选择二进制的,我们看一看这个二进制呢,跟八进制之间怎么转,你转我我转你啊,他跟16之间你转我我转你,然后如果现在你想把十进制转换成八进制,你不行你就先转换成它,它再转换成它。哎,就可以了。行,反正有一种方式就行,OK,那下边这个重点呢,就回归到我们看它俩之间怎么转,他俩之间怎么转。好,那么二进制和八进制,二进制和16进制,我说呀,比较简单,因为呢,这哥俩呢,恰好他是二的三次方,它是二的四次方。它跟这个二呢,哎,关系很近,所以它们之间转化呢很简单。好看一下。首先的话呢,我们看一看这个二进制转换成八进制,我这呢是用了一个int类型来表示的,咱们上面讲的BAT啊,这呢,我就举了个int了,最高位呢是零,这就是个正数,那啊二进制完成八进制呢,诶,因为刚才说了啊,八进制是二点三次方,所以呢,我们就按低位到高位来看,每三个看成一组。
06:03
啊,每三个一组,把这三个的合在一起,哎,得到一个数。呃,那三个一组,这三个的话呢,最大的是不是就111啊。这是几?这不就是七吗?啊,一加二加四是吧。哎,这不就七吗?哎,它不就是八进制里边的最大的那个数吗。哎,也不会超过它,所以说啊,就这样啊,这就是一,这个呢,他仨一和啊,这就是五,这仨一和,这是三。诶很简单,八进制呢,就是零开头啊351。这就成了。啊,那对应的八进制要是转化成二进制呢。对,你把每一个呢,是不是拆成三个。然后再把它平移起不就完了吗?哎,就行好,然后对应的二进制呢,转16进制。它是二的四次方,那就是四个一位。四个,因为恰好最大的不就是1111吗?
07:02
哎,刚才说的这是七,你这个量不就是八吗?A加不就是15吗?哎,15就是F吗?哎,正好是16进制最大的。啊,没问题,所以呢,四个一位。这一算,这是九这一算。这多少?应该是14是吧,哎,14对应的是E,所以就E,哎,那16进制就是一九。那那对应的你把这个16进制转化成这个二进制的话呢,就是每一个数值呢,拆成四位。啊,把它再拼一起就可以了。哎,所以说呢,二进制呢,跟86之间转化呢,是比较简单的。啊,这个大家呢,了解一下这个过程就行了,如果说真要遇到这个题目,让你去做这样的一个转换哈,诶,你就用我们刚才说的,让你把十六十进制转化成16进制呢,你可以先转换成它,它呢再把它。哎,四个一位啊,把它转换成16进制,哎就可以了。行,那么关于金智这块呢,咱们就讲完了,整个呢,这一节呢,实际上呢,不是那么重要啊,但是多少呢,咱们呃,学软件开发的啊,咱们了解一下底层是长什么样子的啊,那么这个讲完之后呢,就能够解释咱们诶做的这个题目当中的这个事儿了。
08:16
呃,在。在在这儿呢。这个呢,咱们就知道了是吧,诶这个的话呢,我们看怎么去解释,那要想解释这个事儿呢,咱们得知道这个对于一个bad来讲,底层的这个负128它是怎么存的啊。看一下。再整一个。哎,这个呢,咱们是想说明这个负的128啊在。哎,BAT类型中。啊,怎么存储。啊,这是我们现在想关心的这个点。这个事儿怎么说呢?嗯,我这样来说哈,咱们先看看这个负的127是怎么存的。要想看负的127怎么存的呢?我们得先看一看正的127怎么存的。
09:06
捋一下这块有点上涨。好,我呢,先把正的127弄出来。是不是长这样?好,那我先看负的127怎么存的。负的二七怎么存?你要找负的127的补码。我先找,呃,我先找到他的。呃,源码是吧,这个是不是负127的源码。好,然后呢,我们就变了啊。哎,这个往下走,这个咱们稍微的写一下吧。负的127,它的。编码。好,接着往下走。诶,找到他的这个叫砝码。哎,负二位不变啊,这个全是零。哎,这个全是零啊,这呢负127的砝码,然后呢,再加一。
10:03
哎,加一啊,这个往下拽一个。加一以后呢,这个就变成一了。这呢,就是负127的补码,也就是说计算机的底层负127长这样。你可以看,哎哟,好奇怪啊。他就长这样。啊,你看一眼。这个听一下127负的你看。头尾是一,中间全是零。这呢是负127的补码了,哎,那么这个负的127我们知道减个一是不是就负的128。负的127,我们减个一啊,这就是负的128了,所以说呢,我们在这个的基础之上呢,咱们减一个一,那我就减个一,这不就变成零了吗。哎,这样,所以呢,这儿呢,就是负的128的一个补码。就长这样,这是一,后边全是零。啊,这个更奇怪啊。行,那么我们看一眼。这个咱们怎么整呢。
11:01
燕儿。负。幺二。这八出不来是吧。不用讲,嗯。这就出来了。嗯,像这样,负点二八长这样。啊,长这样啊,所以说呢,咱们回过来看一下这个代码。当初的话呢,我们讲到说这呢是一个in的类型的是128啊,能不能回过来这呢,换成这个,这是32位啊,咱们先听一下128。这个呢是128,对于int类型的话呢,长这个样子。然后呢,你现在要把它做一个截断啊,然后前面这些都不要了,只保留这一个BAT,那这时候你发现它瞬间这个数呢,就变成了负数了。因为这个一呢变成负号位了啊,然后一看啊,它正好是负的128。哎,就是这样的原因造成的。行,哎,那我们就能够解释这个事儿啊,行,那么意义呢,也就。至于此哈,呃,我们关于这个今日这块呢,大家做一个了解就行,呃,晚上的话呢,也不用特意的再花时间去研究了啊这个呃,熟悉一下就行。
我来说两句