百科问答小站 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,它们所能表达意思的数目和他们本身的数目关系不大,只要位数够长,排列组合就会有很多种,表达的意思自然就会增长,表达普通人认可的“所有的意思”,也就自然不是问题了。




  

相关话题

  stone和石头一词读音神似,有什么联系吗? 
  所谓的随机、混沌是否是测量精度不够的而产生的说法? 
  为什么粤语作为一种地方方言一度会有这么大的文化影响力? 
  为什么很多外国人认为中文语法非常简单? 
  为什么有很多人执着于中文编程? 
  如何看待云舒离开阿里巴巴? 
  如何评价姜峯楠(Ted Chiang)在纽约客上的随笔《坏汉字》? 
  为什么汉语有作为总称的羊而英语却没有? 
  编程时怎么把函数当做变量使用? 
  十九岁重度抑郁的女儿给我写了这样一封信我该怎么安慰她? 

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





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利