今天我们来看看二进制。二进制是现代计算机技术中广泛采用的一种技术方法,那么二进制他的数是用零和一来表示, 而十进制众所周知,他是零到九这十个数字来表示的。十进制的原则是满十进一,而二进制跟他有类似的地方,他叫逢二进一。 好,现在我们给你用表格的形式来看一下,相同的是二进制的一十进制也写成一。那么十进制里面的二在我们二进制里面是什么呢?我们不妨来做一下这样的计算, 一加一输入计算,对吧?一加一等于二呀。但是二进制里面是逢二进一,也就是满二进一 那些零进一。所以二进制我们用一零表示的是十进制的二, 再看三三,那应该是在二的基础上再加一,那二的二进制是一零 一零再加一,零加一得一,一搬下来。因此二进制里面用一一来表示十进制的三,再看四四由一一再加一,也就是三再加一看一下啊。 逢二进一,这里面一加一等于二。满二了,让我们写零进一,再看这高位 一加一又满二了,继续写零进一。所以二进制用一零零表示。十进制里面的四 五五呢,是由四加一,那一零零再加一,零加一等于一零。早班一早班,因此一零一就表示是禁止里面的五,左边这是二,禁止 继续。那么你自己能想一下六的二减至怎么表示吗?用五的二减至一零一再加一, 一加一等于二。逢二进一,也就是满二进一写零进一,高位零加一,一一照白。因此一一零表示的是六七,那也就是六的一,一零再加一 看一下啊。一加零得一,一照斑照斑。因此三个一表示的是十进制的七。 再来八,由一一一七的二减脂加一 看一下,这里就多次碰到了。缝二进一,一加一等于二,那缝二了,写零进位。一加上进过来的一又等于二,又缝二了, 写零进一。再看最高位,一加一又等于二,继续写零进一。因此我们用一零零表示的是八。 那么现在你学会了吗?你知道九用二进制怎么表示吗?如果你学会了,点个赞。
粉丝7045获赞10.5万


首先理解什么叫十进制,什么叫二进制,分别用一句话做解释,在生活当中常用的数字全部都是十进制,也就说这个数字的每一位数都分别有十种情况,分别是 零、一、二、三、四、五、六、七、八、九,然后并且它的规律是满十进一,所以叫做十进制。而在计算机内部所有的数据都采用二进制的形式来储存,也就说这个数字的每一位数都只有零和一这两种情况,并且是满二进一, 所以叫做二进制。然后接下来我们看考试的内容,第一个叫做进制的转换,也就是如何把十进制转换成二进制,以及反过来如何把二进制转换成十进制。然后第二个考察内容叫做如何去表达一个二进制的数字。有两种 表示方法,第一种将它表示成一个无符号数的形式,第二种将它表示成有符号数的形式,它又分为四种表示方法,叫做圆码、反码、补码和偏移码。然后这四种表示方法是我们这节课学习的重点。 然后接下来我们在学这四种表示方法之前,我们一定要先掌握如何把十进制转化成二进制。 我们来看这个案例,给出一个十进制的数字五十七,要求你把它转换成二进制的数字,采用的方法叫做除二取余法,也就是用这个数字五十七去除以二,然后得到它的余数。 我们看五十七除以二,商是二十八,余数为一,然后我们用这一步得到的商二十八,然后继续除以二,然后得到一个新的商数为十四,然后余 数为零,然后再用这个商十四,然后继续除以二,然后得到新的商为七,然后余数为零,然后再用七除以二,然后得到一个新的商,然后余数为一,然后再用这个商继续除以二,得到一个新的商为一,余数为一,然后再用这个商除以二, 然后得到商为零,余数为一,直到这个商为零,那我们就停止计算,然后把所有的余数倒着排列,就是从下往上进行排列,我们就得到了这个二进制的数字是幺幺幺零零幺。 然后这种除法运算,我们也可以换一种书写的方式,可以写成这种形式,五十七除以二,然后下面写上商,然后上面旁边标上余数,然后再用二十八除以二,然后得到商,然后余 余数写在上面,然后再用十四除以二,然后再用七除以二,再用三除以二,再用一除以二,然后得到商为零。得到商为零,就停止计算,然后上面写上余数,把所有的余数倒着排列,就得到了二进制的数字。 然后接下来我们看反过来如何把二进制转换成十进制,采用的方法叫做加全法,或者也叫全职展开法, 我们看他的一个具体运算步骤。第一步,将每一位上的数字乘以相应的全值,然后得到多个层级。那为什么是多个层级呢? 因为比如说这个二进制的数字有六位数,那好每一位的数字都要乘以它对应的全值,然后最终得到六个层级,然后第二步,将这些层级相加,就得到 到了十进制的数字。我们看一个练习,给出这样的一个二进制数字幺幺幺零零幺,然后要求把它转换成一个十进制的数字,那我首先我们找到他每一位数的权是多少, 这个全的话,它是有一个规律的,大家看,首先我们从最右边开始看,大家要注意区分左右啊,我说的是最右边, 然后最右边是不是数字一,然后他的权是多少?二的零次方,那为什么是二的零次,而不是三的零次或者四的零次呢?因为现在我们要的这个数字是二进制的数字, 二进制的数字的话呢,他的权就是二的多少次方,那如果要是三进制的话,那他的权就是三的多少次方,那如果要是十进制,那这个权就是十的多少次方。那我们看首先最右边这个数字,他的权是二的零次方, 然后看最右边的第二个数全是二的一次方,然后最右边的第三个数全是二的二次方,然后最右边的第四个数全是二的三次方,然后二的四次方,二的五次方。然后现在我们就得到了每一位数他的全, 然后我们就需要把这每一位数字跟他的权,然后进行相乘,乘完之后再相加。大家看一乘以二的五次方,那这个一是不是这个二进这数字的这一位数,对吧?然后二的五次方是他的权, 就得到了这个十进制数字是五十七。通过这个案例,我们要求掌握如何把一个二进制的数字转化成一个十进制的数字。然后接下来我们看什么叫有符号数,什么叫无符号数,那无符号数他顾名 思议就是这个二进制数字当中他是没有符号的,就是所有的这个数字,每一位数他都是用来表示具体的数值大小。然后我们看一下这个二进制的数字,他如果翻译成十进制应该是多少? 首先我们找到每一位数字的权,然后用每一位数字和他的权相乘,乘完之后相加就可以了。 那一乘以二的七次方,这个数字一是这个二禁止的数字,然后这个二的七次方是这一位对应的权,然后最终相加,然后得到的这个数字是二百五十五。 然后接下来咱们看,如果要是把这个二进制数字表示成一个有符号的数字,那有符号数的话,他的优点是可以表示正数、零、负数,而这个无符号数就只能表示非负数,也 就是说零和正数,那有符号数。呃,哪一位是符号位呢?因为你的一名字叫做有符号数,那意思就是这个二进制数字当中其中有一位表示的是符号。什么什么符号呢?就是你是正数还是负数,我们就通过这个符号来表示。 大家看最高位,也就是第一位,最左边的第一位,那如果为一就表示负数,如果为零就表示正数,所以说最高位他并不表示这个数值大小。而表示这个数字的符号,你是正数还是负数, 那大于零的就是正数,小于零的就是负数。然后除了最高位之外,剩下的其他位就表示这个具体的数值大小。所以这个二进制的数字,他表示的实进值数字是负的一百二十七,因为他最高位并不表示数值大小, 所以说你看同样是两个二禁止数字,并且这两个数字看起来是完全一致的,但是他们表达的一个数字却是不相同的,因为上面这个是无符号数的,那所有的位都用来表示数值大小,而下面这个是有符号的,除了第一位之外,剩下的其他位是用来表示数值大小, 因为它是负数,因为它的最高位是一,所以它是一个负数,所以是负的一百二十七。 然后接下来我们看有符号数的这四种表示方法,分别叫原码、繁码、补码、偏移码,并且这四种表示方法它是存在一个先后顺序的, 你必须先得到圆码,我们才能进一步得到返码,然后得到返码之后才可以进进一步得到补码,然后才可以进一步得到偏移码。所以说 假如题目要求让你去求一个偏移码,那你就必须先得到圆码,然后从圆码得到反码,跟从反码得到补码,然后再得到偏移码,这个步骤必须是这样的步骤, 然后我们看什么叫圆码,圆码其实咱们刚才已经接触了,就是最高位用来表示符号,就如果最高位是零,就表示正数,如果为一就表示负数,然后后面的其他位用来表示这个数值的大小, 并且是以绝对值的形式给出,也就说后面的数字实际上表示的都是大于零的数字。然后至于说你这个整体的数字是大于零还是小于零, 是由最高位也是由第一位来决定的,如果是零就表示正数,如果为一就表示负数,然后看反码。首先对正数来说,正数的 反码和圆码是相同的,所以说反码他是区分一个正数跟负数的,如果正数那就等于圆码,如果是负数,就除了符号位之外,其他的个位数据全部取反, 就得到了反码。那首先我们理解一个词叫取反,什么叫取反呢?就是我们都知道啊,二进制的数字 他就只有两种情况,就每一位数字只有两种情况,就是零和一,零的反面就是一,一的反面就是零。所以说取反的意思就是把零变成一,然后把一变成零,就是反过来就可以了。 然后除符号位之外啊,那符号位是不能取反的,其他的数据全部取反,那符号位是一,表达他是一个复数,而复数的话就是符号位保持不变,然后其他的位全部取反,这样的话就 从圆码去得到了一个繁码。然后咱们接下来看补码,同样的补码也是区分一个正数跟负数,对正数来说,补码和圆码相同。咱们刚才也说了,对正数来说,繁码和圆码也是相同的。 所以现在我们就知道了,对正数来说,圆码、反码、补码这三个表示表示的方法都是一致的,他们的区别就在于负数。 而负数的补马的话,就是反马的最后一位加一,其实补马就是名字,就是字面上的意思,就是补,就是加的意思,就是反马加一就得到了补马。但是有个前提就是负数只有负数的话,就是反马加一就得到了补马, 那凡马加一,最后一位加一,如果最后一位是零,那加一是不是就变成一了?所以说这就是从凡马得到 补码,然后看偏移码,不论是正数还是负数,补码的符号位取反便是偏移码, 也就是说偏移码是不区分正数跟复数的,它都是对补码的符号位区反就得到偏移码。 然后最后我们做一个总结性的介绍,大家把这四句话一定要记住。首先第一句,反马的反马是原马,补马的补马也是原马,但是没有说偏移马啊,所以说偏移马的偏移马并不是原马。 然后第二句话,补马之和等于和的补马,那意思就是首先我们给出两个数字,你先求出他的补马,然后补马相加,之后就是补马之和, 然后等于先把这两个数字相加,加完之后再求补码,这样结果是一致的。然后第三句话,引入补码之后,带符号数 的加减运算都可以用加法来实现,那这句话是很重要的啊,补码是用的最多的。然后第四句话,整数在计算机当当中的存储和运算通常采用补码,所以大家需要重点关注这个补码,补码是用得最多的。 然后我们看下一个呃题,然后第一个小题,整数在计算机当中存储和运算通常采用的格式是补码,原码、返码、偏一码,那正确答案是补码,因为补码用的是最多的。 然后看第二个题,关于带符号的定点数,下面描述当中正确的是 a 正数的圆码、繁码、补码均相同,这个是正确的。然后看 b 增数的圆码、繁码、补码、偏移码均不相同,这个是错的,因为前三个相同,但是偏移码是不相同的。 然后 c 正数的圆马、反马、补马、偏一马均互不相同,那说错了,前三个是相同的,偏一马是不同的,所以说他说互不相同,这就是错的。然后 d 正数的补码和偏移码相同是错的,因为偏移码的话,是不管正数还是负数,他全都是补码的符号位取反就得到了偏移码。然后看第三个题, 下面描述当中错误的是,我们先看 a 正数的反码和原码相同是正确的,因为对正数来说,原码、反码、补码都相同。然后看 b 负数的补码是在该数原码的最后一位上加一, 大家想补马是谁加一,是不是反马加一,所以说他就错在这个圆马,如果把这个圆马改成反马,那这句话就是正确的。 然后 c 正数的补码和原码相同也是正确的,因为 c 和 a 实际上是,嗯,就是咱们结合着来记,对正数来说,原码、反码、补码都是相同的,然后 d 一个数的反码的反码是原码,对吧?这是正确的,因为反码的反码是原码,补码的补码也是原码。 然后看第四个题,下列序数当中正确的是元马之和等于和的元马是错的,我们所记的是补马之和等于和的补马,所以 a 是错的。 然后 b 正整数的偏移码还是其本身负整数补码的符号位取反则是偏移码是错的,因为偏移码的话是不分正数跟负数的,都是补码的符号位取反, 然后 c 两个整数的补码之和等于和的补码,这个是正确的。然后 d 偏移码之和等于和的偏移码 也是错的。大家把刚才大家把这四句话给记住啊,然后差不多就能离就能就会做题了。 然后我们看下面的案例,然后给出一个十斤纸的数字负一,然后要求把它转换成一个偏移码,并且是八位的, 也就是八个数字偏移码。那首先你要得到一个偏移码的话,我们是不是首先应该得到原码,然后根据原码得到反码,根据反码得到补码,然后根据补码才可以得到偏移码。所以说我们首先当务之前是把这个负一转换成一个有符号的二进制数的原码, 那如何去转化呢?大家看,首先他有这样的四个步骤,第一步得到原码,第二步得到返码,第三步得到补码,最后一步得到 偏一吗?然后接下来我给大家呃书写一下这个负一的一个二进制数啊,因为它是负数,所以它的最高位是不是数字一,对吧?因为它是负数,最高位也就是符号位是一, 然后因为他这个数字一时进制是一,那转换成二进制是多少呢?我们可以去算一下,一除以二是不是商为零,然后余数为一,对吧?所以说商已经为零了,所以就停止计算,所以说他的一个二进制数就是一, 然后我们把它擦掉,二进制数就是一,然后我们来写上一,然后中间缺的这几位补啥呢?补零,因为题目要求的是八位二进制,现在已经有两位了,有符号位,还有最后一位了, 然后中间补零,这就是一个二进制的圆码,然后根据圆码我们可以得到反码。反码是不是因为它是一个负数啊?就是符号位保持不变,剩下的全部取反,就是把零变成一, 然后把一变成零,这就是繁码,大家注意啊,我给大家写出来这是圆码,然后这是繁码,然后下面我们需要得到补码, 补码的话就是返码,加一就是零,加一是不是一,然后前面的一超过来, 这就是补码,然后我们再来得到 p n e 码。 p n e 码的话就是不管是正数还是负数符,补码的符号位取反就是补码的最高位,把一 变成零,然后剩下的保持不变。所以这个题正确答案就是 a, 就是第一个是零,剩下的全是一,这就是负一的二进者的偏移嘛。然后接下来咱们看下一个题 时,精制数字,负的一百二十七,他的一个八位二,精制的偏移码是多少,那其实是一样的道理,跟刚才我们首先需要求出他的一个原码,然后根据原码写反码,再写补码,再写偏移码,那负的一百二十七原码大家应该会写, 我给大家书写一遍,因为他是一个负数,所以他的最高位是一。然后接下来我们当务之急,当务之急就是把一百二十七转换成一个二进制的数字,一百二十七除以二商为多少?六十 三,然后余数为多少,是不是剩下个数字一了,然后六十三除以二商为三十一,然后余数为一,然后三十一除以二商为十五,余数为一。 然后十五除以二商为七,余数为一,七除以二商为三,余数为一,然后三除以二 一一数为一,然后一除以二零一。所以说他这个二进制数倒着排列就全是一一二三、四五六七个一。 然后我们说了他他是一个负数,最高位也是一,所以说负的一百二十七全都是一一二三四五六七八, 这就是他的一个圆码,这就是他的一个圆码,然后根据圆码我们得到反码,反码的话就是符号位保持不变,剩下的全部取反, 是不是八位数了?一二三四,是呢?然后再来得到补码,就是反码,加一就是最后一位加一,零变成一,然后剩下的还是零, 然后这是补码,然后我们再来得到 p、 a、 e 码,就是符号位取反,把一变成零,然后剩下的保持不变。好,这就是他的一个正确答案。所以我们选择 d 选项, 然后我们再来看最后一个题。八位二进制的偏移码,它是一,然后全是零,表达使进制是五,使进制数是多少? 我们可以根据偏移码是不是可以得到补码,因为补码的符号未取反,就是偏移码,而它的偏移码是一,后面全是零,所以我们推断出它的补码就是全是零。 那大家想一下,我们跟补码全是零,哪个数字的补码全是零呢?我给大家说一下,就是零数字,零实净质数,如果为零的话,那他的补码就全是零。我们来写一下啊,零是一个比较特殊的东西, 那大家想零到底是正数还是负数,对吧?零既不属于正数,也不属于负数,但是我们可以表示成正数跟负数的形式。比如说我们写一个我们叫做正零,还有一种叫负零的表示方法,那正零因为它是一个正数, 所以说最高位就是零,然后剩下的全部补上零,然后补上六个零,这就是正零的圆码。然后负零的圆码呢?因为它是一个负数,所以符号位是一,然后剩下的又全是零, 所以说这就是正零跟负零的原码。注意啊,这是原码,然后我们根据原码是不是可以得到反码? 然后我们这是我写上啊,这是原码,然后我再来写这个,这两种零,他的一个反码是多少?因为正零的话,他是正数,他属于是正数,所以说正数的话,原码、反码、不补码都是相同的, 所以说他的反码也是这,那他的。嗯,如果是负零的话,他反码是多少?是不是符号位保持不变,剩下的全部取反, 所以说就全变成一了,哎,不对,这写错了, 嘿,几个零了?一、二、三,这还缺一个零,这还缺一个一,好,这样的话,我们就写出两种零的繁码,就一个是正零的,一个是负零的,这是繁码,然后我们再来写他的一个补码, 再来写一个补码,那因为是正数的话,那圆码、砝码、补码都相同,所以说又全是零, 好,这是正零的补码,然后我们再来看一下负零的补码是不是这个,因为它是负数,所以说反码加一就是补码。那怎么加一呢?大家想一下,对,正常我们实进制数字是满十进一,对吧,而在二进制里面是满二进一,那一加一是不是满二了?满二 之后就进一,那这儿变成零,然后进一,然后这个数字一,然后这个数字一就倒数,这个倒数第二个一,然后加上进上来的那个一,又会进位变成零,然后再往前进,然后一加进上来的一变成零, 然后一加进上来的一,然后不断的这样往前进一啊,最终就得到全是零,因为前面他已经不存在了,你再往上进一,实际上是得不到的,因为最终我们要的就是八位数,八位而进。之所以说你发现了一个问题,就是 不管是正零还是负零,他的一个哎,几个零了?不管是正零还是负零,他的原码返码都是有两两种,对不对?原码是不是有两种零?返码是不是也有两种零?然后但是补码就只有一种,就全是零,对吧?这 这两种是不是相等的?这两种是不是相等的?所以说不管是正零还是负零,它的补码全是零,就只有一种零。


二金制真的起源于中国吗?最近呀,网上流传一个说法,说兰博尼斯是受中国易经的启发,才发明了二金制。你看呀,莱布尼斯自己写的论文,翻译成英文的标题都叫论值,使用符号零合一的二级制,算数间断其用途其他赋予中国古代夫妻所使用的古老图形的意义。 这不就是西方说中国思想启发的铁证吗?看着确实挺唬人的哈,不过我这里先给个结论,二金制和中国没啥关系,但中国对莱布尼斯本人来说确实很重要。首先啊,咱看看莱布尼斯到底是咋想的呀,在那么早就搞出来了二金制。莱布尼斯这个人是搞哲学出身的, 他一直有一个伟大的理想,以前的人搞数学研究,都是你一套词,我一套词,研究个数学,整的跟猜谜似的,互相都听不懂。于是啊,他二十岁的时候写了一篇文章,想要找到一种存在于人类心中的普遍 语言,让大家都用相同的语言交流。所以在数学上,他就一直发明各种符号,对于二进制这种剪辑的表达法的需求,可以说贯穿了他的一辈子。那时候莱布尼斯压根不知道 中国的易经是个啥呢。那难不成莱姆尼斯搞这个二进制,就每天待在宿舍前面琢磨吗?那倒也不是,他可是货真价实的实践派。一六七二年,他就跟会议公司说,我准备造个厉害的计算器,暴躁跟直接帕斯卡那个不一样,我这个又能算加减乘除,又能算平房,开放以后,数学家就不用埋头算数了,可以让机器帮人计算 公司这个人是很有眼光的,毕竟他创立了干剧论,发现了离心逆境里,结果这饼画的太香了,连辉公司都称赞这个 m 一词,就信心大振,抓紧赶工。 但是啊,在造计算器的中间,莱布尼斯就发现让机器算使劲制有点麻烦,尽管最终的计算器用的还是使劲制,这些只能算加减法和乘, 那这也算是一次伟大的改进了。而且就是这次实践坚定的莱姆尼斯搞一个比实践制更加剪辑的技术方法的决心。到这为止,看起来都像个科学家的故事,但莱布尼斯这个人实际上是一个社交达人,可今天就是那种镜片投资人的画饼老板当你 神圣罗马帝国里边有这么个公国,后来被普鲁士给吞并了。而在一六九六年的五月十八号,埃布尼斯就忽悠这个公国的大公爵给他形容了,哎呀,这个二进制多么好多么妙。这大公爵呀,也不知道听没听懂,反正回了他一个徽章,上面写着一 从无之间创造万物,中间还有个零和一的图案。可以说,这个时候莱布尼斯的二进制就已经有模有样了。那为啥莱布尼斯后面写的论文里要专门提那么多中国呢? 根本原因是为了画大饼。之前莱布尼斯把二进制的恶文给学会了,其他学者看结果呀,大家一点都没有耐心听完,我只想知道这玩意到底有啥用啊。莱布尼斯就特别受伤,这为了给学者们做上科普,还得举几个大家都懂的例子。而恰好就在这两年,莱布尼斯在中国的必游法, 法国的传教是白禁给他写了一封关于易经的信心,里边把夫妻八卦都给讲了讲。这下莱布尼斯就精神了,因为当年整个欧洲都流行一股中国热,像伏尔泰、莱布尼斯这种,比如典型的中国吹。之前啊,看 那个历史地图博主和解读的视频里边还专门提到过,那阵子欧洲学术界甚至以为世界上最早发现美洲的不是哥伦布,而是中国人,地图上还把美洲西部交上了浮桑。但对于莱布尼斯来说,那中国赶紧去给学会讲,岂不是再好不过了? 是,他就在原版论文的基础上,但是一大堆跟伏羲八卦相关的东西论证了一番。二进制和中国古代文化是相通的,汉霸是不是很厉害呀?最终这篇论文成功发表, 中国也就这么稀里糊涂的掺和进了二进制的发明里。当然呀,二进制在之后的两百多年其实是无人问津的,毕竟欧洲对中国的滤镜慢慢碎掉了,甚至碎掉了之后,他们还对我们展开了侵略。而二进制的真正崛起,还要等到一八五四年, 中国数学家布尔发明了布尔代数,以及在一九三七年江农在 mit 用数字电路实现了布尔代数,从此二进制才真正重要起来。所以二进制能流行起来,并不是因为他跟易经有多契合,而是因为后世的科学家不断努 努力去应用它。我们当然可以敬佩古人在构造方面的大智慧,但更有价值的一定是用科学技术把古人的各种想法给应用起来。我一直相信啊,文化的美好不能光靠嘴说,更要靠稳扎稳打的实践给展现出来。