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




  

相关话题

  有哪些新概念电子产品值得推荐? 
  如何通俗地理解「分布式系统」,它解决了哪些问题,有什么优缺点? 
  如果一瞬间让所有编程语言的0.1 + 0.2 == 0.3,会造成多大影响? 
  你希望汉语取代英语成为世界通用语言吗?为什么有中国人不希望这样? 
  为什么很多人反对编程语言允许非ASCII码标识符? 
  为什么用字母「W」代替「万」的不规范用法现在这么流行? 
  64位legacy BIOS工作在什么模式? 
  为什么有的 Vision Transformer 中的 key 不需要 bias ? 
  复制粘贴本身可能出错吗? 如果可能,那么原因是什么? 
  请问“挽狂澜于既倒,扶大厦之将倾”中的“既”表示已经还是不久?现代汉语中既表示已经,古汉语有不久。? 

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





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