计算机里面这个&符号怎么读?

想必大家之前一定 会被字符编码困惑。ASCII,GB2312,Unicode,GB18030等等,或者说大家遇到过文件乱码问题。那么这一系列的编码到底是什么?他们之间又会有什么区别?又为什么产生乱码问题?

大家应该知道,我们现在的计算机都是二进制,在通俗的来讲,就是01构成!那么问题来了。我们人类交流的主要方式是语言,而语言往往是由大量的符号构成的,所以很自然的就会想到使用二进制编码,对应到指定的符号,即一个唯一的编码对应一个唯一的符号。在这里说两个概念;

  • 字符集:一堆符号的集合,里面包含了符号,文字,图形符号,数字,甚至可以是表情包。(对于人的字符集合)
  • 字符编码:一套规则。使一个二进制代码对应到一个符号的规则。一串的代码,规则A就可以把他读成:(读取两次),而规则B就把他读成:”“

细心的读者可能有所发现,没错,上面的那些ASCII等,都有自己的字符集和字符编码,其中字符编码就一一对应自己字符集内的所有内容

当初计算机是在美国流行起来的,所以当他们考虑计算机显示文字的问题时,想到的肯定只有字母。于是乎,ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)编码便呼之欲出。

下图便是ASCII表(数字代码和符号的对应关系)

在ASCII中规定:一个字节所对应一个符号。在计算机中,一个字节包含8位,一个字节所能表示的不同状态也只有:256个(

)>) 。就像上图:符号A,所对应的数字编码为:。

但是需要注意的是在ASCII字符集中,只有128个符号,因此ASCII内,128的对应关系。其中前32个符号,是非显示字符(计算机显示)。

随着计算机的发展到欧洲,由于欧洲人们也有着自己的语言,于是就对ASCII进行了拓展,把剩下的128个也建立了对应关系,来表示欧洲地区的字符,并命名为:EASCII

聪明的各位可能就就要问了,欧洲,美洲都把256个对应关系都用光了,我们大中国怎么办?我们博大精深的文字如何表示?此时此刻,GBXXXX字符集&编码就诞生了!(这里的X仅代表数字)。

GB开头的就是我们中国的字符编码。GB就是国标的首字母大写。下面的图是2312的对应规则。

在GB2312中规定:个字节所对应一个符号。

Q:为什么ASCII一个字节表示,而GB2312用两个符号表示?

A:亲,因为咱们的字多呀!两个字节可以有65536个对应状态(

可能又要有人问了,不同国家的字符编码不同,那么如何保证信息的准确性?如果我在中国写好的文档,跑到美国去,那我的文档岂不是要乱了?其实在Unicode没有出世之前的确是这个样子的。随着互联网的出现,全世界的人们都在用自己的语言去共享着信息,如果所使用编码不统一,势必会产生乱码的情况的。

那么只有一个解决方式:将世界上所有的文字都去遵循同一种编码方式。这个方法看样子是不是很难实现?但是他已经被Unicode去实现了,所以Unicode是一个很伟大的编码方式;

Unicode(中文:万国码、国际码、统一码、单一码)是领域里的一项业界标准。它对世界上大部分的进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。

说人话就是:将世界上所有的符号都纳入其中,并且都有与之对应的关系;

(最新的Unicode14.0编码规范要在2021年3月发布,由于疫情故推迟到2021年9月发表。)

在Unicode值得注意的是:Unicode仅仅规范了符号的编码方式,但是对于存储的方式并没有对此说明。

因为有的符号仅需要一个字节,有的需要多个字节。比如,汉字的 Unicode 是十六进制数4E25,转换成二进制数足足有15位(101),也就是说,这个符号的表示至少需要2个字节。表示其他更大的符号,可能需要3个字节或者4个字节,甚至更多。如果全都以:四个字节去存储,由于较小值的编码点一般使用频率较高,直接使用Unicode编码效率低下,大量浪费内存空间。UTF-8就是来解决这个问题的。即解决Unicode存储问题。(后面的8就是以8位为单元进行编码)

UTF-8的编码规范:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

至此,计算机表示语言的方式(即编码规范)基本大势已定,绝大多数都是Unicode编码,UTF-8存储。从此以后互联时代得到了飞速发展。全世界人们尽管语言不同,但是表示语言的方式完全统一!使得全球互联,世界互惠,人们互通!故此致敬各位前辈在字符编码上所付出的努力!

1.计算机系统就是硬件系统吗?

答:说计算机系统就是硬件系统是不完整的。一个完整的计算机系统应该包括硬件系统和软件系统两部分。硬件系统包括:运算器、控制器、存储器、输入设备和输出设备五大基本部件。软件系统分为系统软件和应用软件两大类。系统软件包括操作系统、计算机语言处理程序(各种程序翻译软件,包括编译程序、解释程序、汇编程序)、服务性程序、数据库管理系统和网络软件等;应用软件包括各种特定领域的处理程序。计算机系统中的硬件和软件是相辅相成的,缺一不可。软件是计算机系统的灵魂,没有软件的硬件不能被用户使用,犹如一堆废铁。

2.同一个功能可以由软件完成也可以由硬件完成吗?

答:软件和硬件是两种完全不同的形态,硬件是实体,是物质基础;软件是一种信息,看不见、摸不到。但是它们都可以用来实现逻辑功能,所以在逻辑功能上,软件和硬件是等价的。因此,在计算机系统中,许多功能既可以直接由硬件实现,也可以在硬件的配合下由软件来实现。例如:乘法运算既可以用专门的乘法器(主要由加法器和移位器组成)实现,也可以用乘法子程序(主要由加法指令和移位指令等组成)来实现。

3.翻译程序就是编译程序吗?解释程序和编译程序有什么差别?什么是汇编程序?

答:翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件。

翻译程序有两种:一种是编译程序,另一种是解释程序。它们是两种不同的翻译程序。不同在于编译程序将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只要执行目标程序,因此,只要源程序不变,就无需重新翻译;解释程序是将源程序的一条语句,翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序中的语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句,执行一句。解释的结果是源程序执行的结果,而不会生成目标程序。

汇编程序也是一种语言翻译程序,它是把汇编语言写的源程序翻译为机器语言程序(目标代码)的软件。汇编语言是一种面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。

4.要计算机做的任何工作都要先编写成程序才能完成吗?

答:是的。要计算机完成的任何事情,都必须先编制程序,程序是由指令构成的。不管是用哪种语言编写的程序,最终都要翻译成机器语言程序才能让机器理解,机器语言程序是由一条一条指令组成的程序。CPU 的主要功能就是周而复始地执行指令,因此,要计算机完成的所有功能都是通过执行一条一条指令来实现的,也就是由一个程序来完成的。有时我们说某个特定的功能是由硬件实现的,但并不是说不要编写程序,如乘法功能可由乘法器这个硬件实现,但要启动这个硬件(乘法器)工作,必须先执行程序中的乘法指令。

5.指令和数据形式上没有差别,且都存于存储器中,计算机如何区分它们呢?

答:指令和数据在计算机内部都是用二进制表示的,因而都是0、1序列,在形式上没有差别。在指令和数据取到CPU之前,它们都存放在存储器中,CPU必须能够区分读出的是指令还是数据,如果是指令,CPU 会把指令的操作码送到指令译码器进行译码,而把指令的地址码送到相应的地方进行处理;如果是数据,则送到寄存器,或运算器。那么,CPU如何识别读出的是指令还是数据呢?实际上,CPU并不是把信息从

我要回帖

更多关于 这个符号怎么读什么意思是什么 的文章

 

随机推荐