百科问答小站 logo
百科问答小站 font logo



计算机语言是如何做到靠0和1就表达出这么多东西的? 第1页

  

user avatar   zhu-wang-xiao-miao-o 网友的相关建议: 
      

汉字的笔划有哪些?传统的汉字基本笔画有八种,即“点(丶)、横(一)、竖(丨)、撇(丿)、捺(㇏)、提(㇀)、折( )、钩(亅)”,又称“永字八法”。

而《现代汉语通用字表》则规定了5类基本笔画:横类、竖类、撇类、点类、折类。

无论是横竖撇捺,还是ABCD等26个字母,本质上和01没有太大的区别。

我们可以仔细想想,八种笔划、二十六个字母、两个数字,这其实是一回事,没有本质上的区别。如果你能理解二十六个字母是怎样构成成千上万的单词,那你自然能理解01是怎么样表达如此多的意思。

这里拿ASCII码举个例子,对应图如下:

可以看到,大写字母A由ASCII码中的65表示,也就是二进制中的01000001来表示,B则是由01000010来表示,这样一路表示到小写z结束。

如此一来就把二进制和26个字母做了一个映射,如果你能理解英文是如何用ABCD等字母表示所有意思的,那通过这样的映射,二进制不就也可以表示所有的意思了吗?

但实际的计算机内还不止于此,二进制每8比特(即8位)构成一个字节,对于单字节的ASCII字符来说,8比特二进制值就能代表一个字符。而对于汉字这样的多字节字符,需要将其按字节切分,每个字节分别用8比特来表示。多字节字符又涉及到不同的字符集编码,例如Unicode、UTF-8、GB18030等。例如“中”字,Unicode使用4字节表示,UTF-8使用3字节,GB18030则使用2字节不同的编码表示。这样就又将汉字与二进制做了一个映射,通过这样的映射,二进制不就也又可以表示所有的意思了吗?

至于图像,视频等,也不过都是许许多多的二进制流的表示罢了

例如图像,也就是先把二进制和颜色之间做了一个映射,然后对图像划横线和竖线做一个切分,切分完成之后的每块都是一个像素点,然后给这个像素点分配一个代表该块颜色的二进制数字,呈现的时候再把每块像素中所包含的二进制数字转换成其所代表颜色,这样一幅图就完成了。

至于视频,也可以简单看成是一系列图的连续播放

这样一来,是不是对二进制如何表达复杂的东西有了一个大致的了解?

可以看到,实际上横竖撇捺,字母和01,它们所能表达意思的数目和他们本身的数目关系不大,只要位数够长,排列组合就会有很多种,表达的意思自然就会增长,表达普通人认可的“所有的意思”,也就自然不是问题了。




  

相关话题

  小白问一下,比较厉害的编程代码,到底厉害在什么地方?是用最少的语言表达出意思,然后不会出现矛盾? 
  大型网络公司有没有在西北开分公司的必要? 
  谁能帮我讲一下计算机的「前世今生」? 
  为什么学了一个学期的c语言,感觉一直都是在用代码去做一些简单的数学题,没有什么实际用途? 
  为什么法语今天Aujourd'hui这个词这么奇怪? 
  有哪些令人赞叹的少数民族语言的谚语吗? 
  为什么 CPU 需要时钟才能工作? 
  有哪些贬义词变成褒义词的词汇? 
  中国除了军力、金融、计算机相关方面,还有哪里不如美国么? 
  《红楼梦》里,那些方言词汇跟你的家乡话很像,帮你解释了一些别人可能看不懂的细节? 

前一个讨论
这个公式如何证明?
下一个讨论
僵尸和丧尸都是以咬“人”来归类的,那如果僵尸和丧尸盛行,哪一个会站到最后?





© 2024-06-02 - tinynew.org. All Rights Reserved.
© 2024-06-02 - tinynew.org. 保留所有权利