带你看透各种软件的本质,分析到最底层的001100

计算机是特别笨的,它只认识0和1,也就是高电压和低电压,简单可以理解为通电和断电。

那么为什么现在的电脑,手机都那么的智能化?

因为有软件,软件赋予了计算机人的思维能力。所以它才可以无所不能。

我们今天来聊聊从人工智能到0011之间有意思的联系,分析一下0和1是怎么构成现在互联 浩瀚的世界的。

我们平时看到的一个文字,或者是一个数字,在计算机中都是001100的形式,其转换形式都是由编程语言规定的,编程语言品目众多,不同的语言规定的数据存储长度、占存储空间不同,所以翻译成的机器语言001100就不同。

我们选择一个长度不变的语言java来分析,因为其实跨平台的,所有的字节码运行在自己的虚拟机中,跟操作系统无关,比如byte一定是8位长度,int一定是32位长度。

而且我们分析一个最简单的例子,就拿数字来说我们都知道java中byte数据类型的长度最大只能是127。

为什么Java中byte类型的数据最多只能是127?

可能大家学java时,都知道byte类型的数据范围是-128到+127,那么为什么是这个范围呢?

因为java是跨平台的语言,字节码最终运行在java虚拟机中,所以他的基本类型的长度是固定的,byte就是8位,int就是32位,他跟操作系统无关。这就奠定了127的基础。

其他语言的数据类型的长度可能会随着操作系统的不同而略微不同,但是基本原理都是一样的,原理如下:

8位长度代表可以存放8个0或者1,其中最高位要那里做符 位,1表示负,0为正。剩下的7位整合表示了2的7次方,对应十进制中的128,所以8位长度表示的范围就是-128到127,为什么是-128?不应该是-127到+127吗,这个就有趣了,因为正负 的作用就会出现两个零,即:正负零

+0:00000000

-0 :100000000

这个是印度人发明的,他们发现一个有趣的现象,就是一共8位,满了之后就会溢出,多余的位数不会被保存,被截断了,127之后128就又变成1了。类比时钟就可以理解,时钟转一圈12点之后又是1点,然后他们把10000000也就是-0人为定义为-128,就满足了类似时钟的效果,正好可以保证一圈都连起来,这个概念叫做“模”。这大概就是数学的魅力所在,各种复杂的问题到最后就变成了1和0的区别。

我们就拿最简单的数字分析,同理,字符(英文,汉子等等)也是这么存储的,图片和声音会遵循不同的格式进行存储,所以图片很声音有各种格式,什么jpg,png,mp3等等,但基本原理是大同小易,类比数字的存储也很容易理解,然后图片很声音组合产生了视频。

我们每天看到的无非就是这些元素,符 ,图片,声音的组合。他们都会变成对应的0和1,外加一个格式的标记。然后这个庞大的家族就组成了我们现在的互联 ,优秀并且智能。

互联 的伟大,是因为它融合了几代人的智慧,几十年的积累,集结了世界上最优秀的人们的思想,组合到一起,为全人类而服务。这大概就是互联 的魅力。


如果你热爱编程,如果你喜欢互联 ,可以关注一下我@两毛五哥哥,每天分享不一样的互联 知识,带小白飞,跟大神侃,我的格言是:做人不必优秀,要无可替代!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年10月11日
下一篇 2016年10月11日

相关推荐