新闻  |   论坛  |   博客  |   在线研讨会
电脑为什么都用二进制,竟然和美国有关系!
编码之外 | 2020-06-03 00:33:16    阅读:264   发布文章

其实二进制真的是个有趣的东西,而且作为学习编程的你,了解二进制的相关知识那是必备滴,相信我,看完今天这篇文章,你会get到很多姿势,最后读完觉得不错的,请无情的转发吧!

不过,这个和美国有啥关系,别着急,我真的是带你涨知识的!

知道了二进制这个知识点,我飘了

我之前曾在知乎上看到这样的一个话题,大意就是说你从什么时候觉得自己的编程能力开始突飞猛进了,说实话,我现在还没有这样的感觉,也许是我太菜了。

但是,重点是但是,当我知道了二进制的这个知识点,我觉得我懂底层了,啊哈哈!

那是什么嘞?就是这个知识点:

对于计算机而言,所有的数据最终都是被转换成二进制进行存储的!

咋样,你知道这么回事吗?也就是说啊,对于计算机而言,我才不管你是什么图片,还是什么数字等等,在我眼里清一色都是0和1组成的一串串的数字,这些就是二进制数据。

我们平常写程序,敲代码,各种数据一大堆,当程序真的运行起来的时候,其实计算机的内部处理的都是二进制数据,我们写的那些个玩意,经过编译啥的,最终都被搞成了二进制数据。

这是啥,这就是底层运作机制啊,你说我懂得了这些,是不是可牛气,那还不得飘了!

二进制是个啥玩意

那二进制是什么东西啊,这个学习编程的多多少少得了解点吧,最起码知道十进制吧,上过学的都知道,我们最常用的,竟然有人问,为啥我们经常使用的是十进制,你猜我咋回答的,我让他数数自己有几个手指头和脚指头,所以说嘛,十进制对我们来说非常自然,而且超级方便,否则用个十六进制什么的,我估计小学课堂上都是掰脚趾的。

二进制是用来表示数的一种方式,我们十进制使用0-9这十个数字来表示,然后是逢十进一,那二进制的话就是使用0和1这两个数字来表示数,然后是逢二进一。

除了十进制和二进制,常见的还有八进制和十六进制,就是同一个数可以用不同的进制来表示,一般以我们熟知和使用的十进制来作为基准,比如十进制的5用二进制咋表示,用二进制的话就是:101,你看是不是都是0和1。

一般二进制都是几位嘞

这里还有个知识点,我们上面说了,二进制就是使用0和1这两个数来表示各个数的,像上面的十进制的5,用二进制表示的话就是101,但是更为准确的一点,我们可能会把它写成二进制的标准形式,就是00000101,你数一数0和1一共有多少个。

如果你数学学得足够好的话,应该看得出来是8位,为啥是8位,为啥前面都是0,来来,我们一个个的说。

首先啊,考考你的基础,你知道字节和位的关系吗?一字节等于多少位呢?一般啊,一个字节叫做1byte,一位叫1bit,然后一个字节等于八位,这个位是啥,二进制不都是0和1组成的嘛,然后每一个0或者1都叫做1位,那为啥要表示成八位好点嘞?

上面说了,一个字节是八位,那你知道计算机处理信息的最基本的计量单位是啥吗?对的,就是字节,字节是基本单位,位则是最小的单位,所以啊,一般用一个字节八位来表示,因此十进制的5通常用二进制00000101来表示,这样更规范,那只鱼为啥前面都是0,那是因为二进制有规定,高位用0补充,也就是说啊,101前面需要补充几位数字,一般凑成八位,前面的都叫做高位,高位用0补充。

当然,二进制的表示,一般来说可以使八位,十六位,三十二位,也就是八的倍数,为啥是八的倍数,上面同理,所以啊,具体怎样表示,视情况而定,举个例子吧,比如你写个101,可能有人认为是十进制的一百零一,但是你写成00000101,别人一看就是二进制了,咋样,有内味了吧!

这里如果你想了解的更多,那你就要去了解下进制的转换了,也就是各个进制转过来转过去,

二进制为啥是0和1啊

二进制用0和1来表示,有啥意义吗?不就表示两个数嘛,我喜欢6和8,咋不用这俩数嘞,这个吧,按理说是可以的,但是0和1这是个经验结晶,0和1你不觉得很纯粹,更加简约吗?

其实吧,这个0和1就是个抽象出来的玩意,说白了,0和1的本质就是两种状态,这也是长久发展而来的,我们平常都知道什么正与反,好与坏,阴阳八卦什么的,其实就是个对立面,拿到计算机这面来说,那就牵涉到电啊,元件啊什么的,怎么搞嘞,计算机毕竟要有电才能工作,那简单点,有电和没电,说的高大上点,断电和通电,这不就是一个对立面嘛,那好就用通电和断电这两种状态来表示数据吧,通过不同的通电和断电的各种组合来表示不同的数据,不过你表示一个数据,总不能写成这样吧:“通电通电通电断电断电”,这什么玩意儿,还是得想想怎么表示比较优雅。

我们先来看看计算机的内部构造是怎么回事吧,我们都用过计算机,但是你知道计算机的内部构造吗?你说,知道,不就是主板,内存,磁盘这些玩意吗?说的没错,再往小小的说,其实说白了,计算机的内部构造就是各种的IC组成,不用说,你不知道啥是IC,哈哈,IC就是集成电路的意思,

这就是一个IC,注意看它的长相,有点像蜈蚣,很多触角,它这个叫做引脚,因为是组成计算机的玩意,所以它是需要通电的,那么对于一个引脚来说,就是只有两种状态了,你想啊,对于这个引脚来说,要么通电要么不通电,你看,这是不是就是两种状态,说起来也是对立面,就是通电和断电。

这个引脚通电后是有电压的,一般来说嘞,就是5V,也就是通电是5V,断电就是0V了。

不过这里据我看的一些其他资料发现这不是绝对的,也就是说通电的状态不一定非得是5V那么准确,因为最终是要依靠这两种状态来表示二进制数据的,内存中的IC有过详细的介绍,就是不通电表示0v  通电表示5v 这其实也是不准确的  通电和不通电表示的是状态  更加准确的描述是0-2.5v  表示不通电这个状态,也就是断电,而通电状态是2.5-5v ,这样容错率更高 。了解即可。

到了这里你其实就要明白,计算机对于二进制数据的处理就是用一种对立面的两种状态来表示,那在计算机里面如何去优雅的表示这两种状态嘞,想来想去,还是0和1比较合适,这就像是经验值一样,一直传承下去,然后还有逻辑运算中的真假什么滴,用0和1都比较合适。

为啥电脑都是用二进制嘞

那我们接下来再来看看,计算机中对信息处理为要用二进制嘞,十进制什么的不可以吗?再说这之前,你还得了解下计算机的运算机制,主要就是CPU这块的知识,别担心,我已经写过这方面的文章了,你看看:

了解了CPU的一些运算机制,你就会明白,用二进制运算,是真的简单啊,不过要是这样简单的说说,你好像还是不知道,为啥计算机处理信息要用二进制啊,我来稍微详细的给你说说。

1、硬件上容易实现

上面让你看了计算机中的IC了,你看那些引脚,是不是刚好两种状态,与二进制的理念不谋而合,二进制也就0和1两种状态,这是在硬件上的实现,也即是状态越少越好实现,二进制就两种状态无疑实现起来比那些多状态的更加容易。

2、运算起来更加高效

你想啊,就让你计算0-1之内的加减乘除容易还是1-100之内的加减乘除容易啊,这个显而易见啊,对于计算机的计算也是这样啊,肯定状态表示越少越容易计算,也就越高效啊。

大致先了解这两条吧,多了你也记不住,然后接下来就给你说点野史,增加你的见识和姿势!

你知不知道还有三进制

我们平常说进制啥的,大多数都是在说什么二进制,十进制,保不齐还有八进制和十六进制,但是你在听过三进制吗?应该很少人知道这个吧,其实三进制在某些方面比二进制还要强!

经过上面的讲解,我们知道,对于二进制来说,就是俩状态,表示出来就是0和1,再说的底层一点,那就是计算机内部高低电平,也就是IC引脚那块,有通电和断电两种状态,这个也叫做高低电平,但是三进制有点不一样,对于三进制来说,从名字上就可以猜出,它是有三种状态的,表示出来就是0,1和-1,是的,人家多了个-1,用电表示的话就是正负电压和0。

其实你如果试着学习二进制的转换这块你就会发现,二进制对负数的表示不太友好,需要用到补码和反码的知识,这块的设计也非常的巧妙,但是学习起来也非常的烧脑,不过对于三进制来说,由于引入-1这一状态,就可以很好的表示负数,所以就这点来说,三进制会比二进制少了很多复杂的运算!

那你会说,为啥现在不用三进制嘞?讲点历史吧!

为啥不用三进制嘞

简单聊聊吧,注意啦,涨姿势啦,三进制这个东东,最早是苏联搞的,当时还搞这个的还有美国,不过后来美国那边因为某种原因,关于三进制的研究停止了,那么当时比较牛气的就是苏联对三进制的研究,成果已经到了搞出了样机的地步,网上找了图片:

美国这边对三进制就没啥弄的了,于是美国就搞二进制了,好像是这么回事,哈哈,所以啊,那个时候,美国主要是二进制,苏联嘞就是三进制,不过啊,最后因为啥啥战,苏联没落了,作为其归属的三进制也跟着玩完了,而美国嘞,越来越进步,随着二进制也奠定了霸主地位,然后科技的不断发展,依据二进制搞了一系列的东西!

而三进制,注定昙花一现啊!


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客