计算机的本质及其编码与解码

目录
一、计算机的本质及编码与解码的作用
二、计算机字符与二进制的编码和解码
1、位(bit)、bytes类型
2、 编码标准(编码表、编码规则)
(1)编码标准的构成
(2)字符与二进制对应的可行性
3、编码与解码
4、进制及各进制之间的转换、其他进制与编码标准的关系
(1)进制及各进制之间的转换
(2)其他进制与编码标准的关系
5、代码或文件的自动转换

计算机的本质及编码与解码

一、计算机的本质及编码与解码的作用

       机器是不能理解我们人类通用语言的,它的运行完全是电、磁、光等自然规律的作用。人的思维、分析、计算处理都是要依靠语言来表达的,比如:文字、符号等。这些标记符合帮助我们记录、描述客观世界,我们依靠它们进行形象与抽象的理解、再现、思考、决策、实施。那么,要让机器具有这些能力,首先应该让机器内部存在这种对客观世界的描述信息,然后机器才可能根据这些信息做进一步处理,但机器显然是不懂人类构建的文字、符号、甚至外部客观世界的反映。因此,我们必须把这些东西与机器中存在某种规律特点对应起来(建立一种映射),使得机器内部存在对客观世界的描述信息,有了这些基础后,才能用电、磁、光等客观规律让机器再现逻辑关系,从而使得机器具有智能化的特点,实现具有人的计算处理能力。

       上述提到的对应(或映射)的概念就是计算机的编码(encode)与解码(decode)。编码是把一种对象(事物)唯一地对应为另一种对象(事物),是一种一一映射关系,解码是编码的逆过程。编码(或解码)是人的主观行为依据规律建立一种一一对应关系。

       在计算机中常用的编码与解码就是字符与二进制(binary system)的对应关系,还有声音、光(也即图像、图形)与二进制的对应关系,这里面涉及到模拟信号与数字信号的编码与解码(在这种应用语境中一般称为调制与解调),此外,二进制从一个部件(器件)传输到另一个部件,或从一个终端设备传输到另一个终端设备,存在有数字信号与二进制的编码与解码。这些对应关系,使得计算机具有人的文字、符号记录,外界的声音、光的记录,并确保这些记录的信息流动起来,从而使得计算机内部的部件(器件)或外部其他设备对信息的计算处理。这种计算处理实际也主要是模仿人的逻辑思维,只是这种逻辑思维是通过电、磁、光等客观规律来再现的,也即人的逻辑关系与客观规律建立一一对应(一一映射),让这种映射结果来表示人的逻辑,使得计算机具有能动性、智能化特点。

      通过上述的对应(映射),计算机就比较类似人脑了,由于这种对应又与电的规律密切相关,因而计算机又称为电脑。

       上述我们提到三种编码与解码,它们分别解决了字符,声音、光(也即图像、图形),传输(也即信息的流动性)问题,它们与计算机运行密切相关,都非常重要。但在程序设计中,我们经常接触比较多的就是字符与二进制的编码和解码问题。下面,我们主要讨论字符与二进制的编码和解码,其他两种编码与解码与之类似,但具体操作形式、复杂度不同。模拟信号与数字信号之间的转换比较复杂,因为从连续性到离散性的对应,必须要找出规律才能对应,两种异性特点的对象的转换可能存在误差干扰因素,从而导致失真。而字符与二进制的对应是离散性与离散性的对应,这种同性特点的对应,我们只要规定出一一对应关系即可,不存在误差干扰因素。

二、计算机字符与二进制的编码和解码

       在计算机中,字符一般是指人类通用语言的最基本的组成要素(元素),字符表示字母、数字等基本标记符号,文中提到字符一般都是这个意思,具体可以结合语境来理解。

1、位(bit)bytes类型

        位是计算机存储的最小单位,简记为b,也称为比特(bit),计算机中用二进制(binary system)中的0和1来描述数据,一个0或1就代表一位。

        在计算机中,通常用8位的二进制来表示一个基本单位的数据,8位的二进制称为一个字节(byte),这个8位是人为的规定,这个位数有利于表示各种字符,太少会出现位数不够,太多会出现多的位,这都不利于表示,不利于计算处理。字节(byte)是二进制数据的单位,是计算机最小的信息单位,不能再分,也就是讲,一个字节可以代表一个字符的含义,不能再分,类似字符串格式的一个字符一样不能再分。

       多个字符可以构成字符串,我们可以称为字符串类型,多个8位的二进制构成多个字节,在python中我们可以称为bytes类型(字节类型,字节串)。

       由于计算机是通过二进制进行存储和计算的,而字节是计算机最小的信息单位,因此,字节在计算机中也作为度量存储容量的基本单位。

        Bytes类型是用来表示二进制的字节的数据类型,类似字符串类型用来表示字符的数据类型。bytes类型是描述二进制的、以字节为单位的数据类型。

       通常用的字符适合人阅读,但计算机适合二进制的字节,因此,我们经常会遇到字符与二进制之间的转换问题,也即str类型与bytes类型之间转换。下面我们将讨论两者之间的转换问题。

猜你喜欢

转载自blog.csdn.net/thefg/article/details/133070139