00:00
接着呢,我们来说明一个问题,这四种进制当中,计算机呢用的是二进制,咱们呢,作为这个平时使用的话呢,十进制接触的是最多,哎,我们接下来一个问题呢,就来说明一下这个二进制和十进制之间应该怎么去转换,哎,包括咱们那会讲到这样的一个问题的时候呢,大家也看到了啊,说我这有一个。嗯,在前面这啊说我这呢,有一个in特型的叫128,我们给它强转以后,你发现这个结果是负128,哎你要想解释这个事,那你必须得懂这个二进制啊,十进制二进制,这样你才能够知道这个原因是什么,那下边呢,我们就来说明一下,哎先来讲一讲这个十进制和二,二进制和十进制之间的一个相互转换啊,相互转换这块呢,我们就得画图了,哎画图的话呢,这个我就在这块来画了,哎把这个呢我们哎删掉啊,那我们呢,先考虑一下二进制呢,这个往十进制之间的一个转化啊,那二进制的话呢,我们这得定一个数,那这个数呢,二进制整形的那又分成int bet short int long,那咱们这边呢,我这要整一个印的形,有点太长了,就啊,因为32位码,所以我这呢拿一个哎,Bet呢来演示了,哎,Bet你要听清了,那无外乎印的就。
01:21
就是长一点而已啊,一样的啊好假设呢,这就是我们所说的一个bad形的一个数,Bad形的数的话呢,我们这块呢,知道每一位呢,不是零就是一,那我们这呢,就随机的写一下啊,比如这是零,那这是一,这是零,这里来个一,这都是零。哎,这都零,好,那首先我们关心的是这个数十进制应该是几对吧?哎,咱们刚才不是写过来吗?幺零是六吧,对这个六你要是一开始不清楚,你可以先先都是零是吧,这肯定是零吧,这是不是就一样?
02:01
哎,二进制的一或十进制的一啊,然后呢,你再加个一加一制的进位了,哎,变成一零,那从十进制来讲,你一加一,这是实际上是二对吧?对,然后你再上推,这其实是三再加一呢,进位进位100吧,这是几。这这就是四呗,啊,这就是四啊,这是四,然后呢,刚才咱们呃说的这个数呢,是110是几110呢,其实你不就看成是哎这个数,你再加上一个这个数吗?这俩加起来不就变成了110了呗,这是四,这是二吧,对,所以这个加出来这不就是六吗?哎可以这样去理解哈,哎把这个呢,我们把它呢筛一下哈,这这个呢是一个六,那我要这块再补,再补一个一呢。
03:04
有同学算的比较快的啊,这个应该是14。14啊,哎,怎么算出来的呀,对,就是你刚才呢,这不是,呃,你你其实你就关心一下这个数是几对,这个数呢,其实是八,然后你再把刚才这两个一这样P一起,那不就八加上一个刚才那个六呗,哎,这不就变成了14了。哎,其实这里边呢,有一个小技巧哈,哎,对,小技巧其实就出来了,就是我们刚才写就是这如果要是全是零,那其实就是零,如果我们这都是零,这是一的话呢,啊对,我们知道这是二,如果呢,这是一,别的位置都是零,四,这是四,其实就二的平方,然后呢,这是一,其他置都是刚才说了是吧,那么就二的三方。
04:07
哎,那这个技巧呢,其实就是,哎,我们如果拿到一个数啊,当然其实这个前提呢,我们现在说的其实是一个正数啊,啊这个正数一会我们说这个符号的问题哈,哎,这目前呢是个正数,这个数呢是几,大家呢,就后边呢,你看它在对应的这个位置上呢,这个一在哪个位上是一,那你就相应的给它做一个,哎这个累加就可以了,像这块先出现的是一,或者你从这个尾部看也行啊,这是个零,那不用管了,这是个一,哎让你末尾这个一呢,它对应的是二的零次幂。它对应的二的是一次米啊,它是2.24米二的三次米,所以这块呢,你从低往高的去加,就这样乘就完了,其实这块也可以乘。只不过乘完以后都是零,所以就省略了,嗯,那你这样就乘一乘不就一乘以二的,对,那从高位的话,一乘以二的三次幂,这个我们用这个来表示这个次幂啊,哎,再加上一乘以二的哎,二次幂,哎,一乘以二的这个一次幂,哎这个结果,嗯。
05:21
14吧,看这就是这个结果。哎,那这里这个14呢,就是我们十进制的14。啊,十进制的14啊,那这呢,其实就算是说清楚了哈,那说清楚呢,其实这呢,呃,有一个要求,就是我们这个数呢,这样计算,其实它得是个正数才行。所以这里边呢,就涉及到我们说一个BAT,哎,它可以表示的范围呢,是负的128到正的127。啊到这个正的127,那我们这个范围的数呢,应该怎么去表示哈,因为它这里边不是零就是一,怎么表示这个负数,刚才说的我们都是正数啊,哎,所以这里边呢,提出来了一个,哎提出来一个知识啊,就是我们把这个最高位,哎把最高的这个位呢,哎看作叫符号位。
06:21
诶把这个最高位呢,我们把它叫做符号位,这个符号位如果是零对表示的就是正数,哎是一对表示的就是一个复数。哎,那咱们现在呢,很显然这是一个正数,哎正数的话呢,哎,咱们就直接后边呢,你就算一算,看看哪些位置上是一啊,你从后往前呢,给它安排是二的几次幂,做一个累加就可以了啊就可以了啊咱们呢在呃,我这是WIN7啊,你可以输入一个叫计算器,诶然后点开这个计算器的话呢,它竟然还有一个叫做程序员模式,对啊,哎,就方便我们来去使用的,那咱们现在呢,举例子是一个字节哈,所以你就这选一个字节了,呃,然后呢,这块,比如我输入的,哎咱们这不我写的十进制嘛,14是吧?哎,你看这个十字怎么就长这样了。
07:34
哎,说明我们刚才这个计算呢,是正确的还是正确的啊,哎,那如果我要是给你一个数,呃,让你再去算,这应该难度不大啊,比如说我这块,我我这块蹦了个一,这块蹦了一,哎让你算算他是十进制的是多少,好算吗?哎,这就具体就别算了啊,就是你就懂这个方式就行,这二的一次米20米30米五四次五次,哎六次幂,哎像这个零的话呢,你就别算了,因为乘完以后还是零,就把这些数是不是加起来就可以了,哎,对的啊,好,这样就行,哎这个就不具体算了,那行,那这就算是讲完二进制到十进制的转换了吗。
08:26
没有,因为咱们刚才说的这是不是一个正数啊,对,然后呢,我们下边呢,就得说,如果这个数是个负数的话呢,是怎么回事啊,哎,当我们这个最高位是一的时候,这个数呢,就变成了一个负数了,那有同学就会想,哎,这变成负数,那不就是负14吗?不对,它不是负14,哎,那它是负多少,那咱得得得去算一算了啊,首先说它是不是负14,那这里边呢,就是牵扯到一个知识点啊,哎,就是我们上边的,哎,这个知识点啊,这个进制啊,我们这里要提到叫二进制,二进制呢表示个数,首先第一个点最高位是符号位。
09:17
啊,当最高位是零的时候,它表示的是一个正数啊,我们关于二进制呢,都要提他们的三个码叫原码、反码和补码,那对于正数来讲,正数的原码、反码和补码是相同的。哎,实际上咱们刚才呢,也没有提说原码砝码补码的事儿,就把这个呢,你就可以看成是这个正数的原码反码补码都行,反正它三码都一样。但是呢,复数这块就不一样了,哎,这块呢,其实稍微还是有这一点难度啊,但是这个内容呢,其实又不算多重要,我们就是说一说给大家啊。嗯,这呢,首先是一个负数,那负数的话呢,这时候你得关心你,你这是给了我叫负数的源码呀,负数的反码呀,还是负数的补码呀,是吧,有这样一个问题。
10:12
啊,有这样的问题,那这块呢,我们就这个这个来考虑一下哈,首先我们把这个数是正14,把它的最高位从零改成一,这个数呢,首先它是一个负数,那这个负数跟这个14是什么关系呢?我们只能说这个数啊,如果我们要叫的话呢,你可以看做呢,这个叫负14的原码。啊,这个呢,你可以把它叫做负14的原码啊,就是将正14这个最高位从零改成一,这就是负14的原码啊嗯,负14的原码长这样,然后的话呢,哎,我们怎么得到它的叫反码,对,就是除了这个符号位之外啊,各个位呢取反,除符号位外,哎,各个位取反。
11:15
好,取反以后,哎,我们往下一转,哎,这呢就得到负14的这个叫反码来,我们这呢,从零变一一变010001,这呢就是负14的这个砝码,然后反码呢,我们还要得到它的补码。哎,得到它的补码,补码怎么办呢?在反码的基础之上呢,加一。哎,砝码加一得到补码,哎,那这个呢,我们加个一,那这个加一这个就变成零往前进一位呗,是不是就长这样啊,诶这个呢,咱们得到的叫负14的一个补码啊,你要说说这个数到底是是不是负14,你得看他说的是原码反码还是补码,因为是负14,你发现不一样啊。
12:21
啊,那么这呢,首先呢,大家先明确,就是这个三个码之间的这个关系啊,总结一下,对于正数来讲,我们说叫三码合一,就都长这个样子啊,那对于负数来讲的话呢,它的原码反码,补码存在一个关系啊,就是刚才我们举的这个关系式,这个负14怎么得到的,它的源码,其实你可以看到是通过这个咱们给它引申出来的,对吧,这个我画一个这个虚线啊。画个这个区,嗯,画一个。
13:00
这样的虚线吧,哎,由我们这个正十字呢,咱们引申出来,把符号位变一下,这就是负14的一个源码啊,一四呢,有这样的关系啊,先清楚它们三者之间关系啊,嗯,然后呢,咱们要明确的一个点是什么呢?就是在计算机的底层,这个呢是咱们的一个,也是一个结论哈。计算机底层都以补码的方式来存储数据,哎,这个结论呢,记住计算机底层都以补码的方式来存储数据,不管是正的负的都一样啊,那也就是说呢,正数的话呢,因为它三码合一,其实你就记这个就可以了,然后呢,对于负数来讲的话呢,这个其实底层要是纯负14的话呢,其实是长这个样子的。
14:00
啊,底层负14来咱们看一看啊,我把这个清一下,我写个14再加一个负号,这呢就是负14的一个,哎,它在底层存储的方式,你看跟他仨谁一样。四个100104个10010长这样。所以计算机底层呢,其实都是以这种补码的方式来存储数据的啊,那那讲这个砝码跟源码有什么意义啊,对你要是没有这俩码的话呢,是不是你也推不出来它呀,咱这边是从这是不是一点点引申过来的是吧。呃,引申过来以后呢,然后得到这个不骂以后,这俩其实就不要了,那就不用想了啊,这个呢,就是我们一个成语呢,叫过河拆桥是吧。就是这个意思啊,是不是有点晕啊,这个好。
我来说两句