欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python全栈开发之路day1

程序员文章站 2022-04-09 13:56:50
目录 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。 计算机发明者约翰·冯·诺依曼。 ......

目录

  1. 计算机介绍
  2. 计算机硬件组成
  3. 计算机基本原理
  4. 发展趋势
  5. 计算机上面常用的计算单位(容量,速度等)
  6. 字符编码

 

 计算机

 


 

        计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。
计算机发明者约翰·冯·诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。
 

 发展历史

 


 

        计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例如从“结绳记事”中的绳结到算筹、算盘计算尺机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也孕育了电子计算机的雏形和设计思路。

1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世了。ENIAC(中文名:埃尼阿克)是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算器使用了17840支电子管,大小为80英尺×8英尺,重达28t(吨),功耗为170kW,其运算速度为每秒5000次的加法运算,造价约为487000美元。ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。在以后60多年里,计算机技术以惊人的速度发展,没有任何一门技术的性能价格比能在30年内增长6个数量级

电脑的学名为电子计算机,是由早期的电动计算器发展而来的。

通常说到“世界公认的第一台电子数字计算机”大多数人都认为是1946年面世的“ENIAC”,它主要是用于计算弹道。是由美国宾夕法尼亚大学莫尔电工学院制造的,但它的体积庞大,占地面积170多平方米,重量约30吨,消耗近150千瓦的电力。显然,这样的计算机成本很高,使用不便。这个说法被计算机基础教科书上普遍采用,事实上在1973年根据美国最高法院的裁定,最早的电子数字计算机,应该是美国爱荷华州立大学的物理系副教授约翰·阿坦那索夫和其研究生助手克利夫·贝瑞(Clifford E. Berry ,1918-1963)于1939年10月制造的"ABC"(Atanasoff- Berry-Computer)。之所以会有这样的误会,是因为“ENIAC”的研究小组中的一个叫莫克利的人于1941年剽窃了约翰·阿坦那索夫的研究成果,并在1946年时,申请了专利。由于种种原因直到1973年这个错误才被扭转过来。(具体情况参阅百度百科----“约翰·阿坦那索夫”词条,希望大家记住ABC和约翰·阿坦那索夫,希望以后的教科书能够修改这个错误)。后来为了表彰和纪念约翰·阿坦那索夫在计算机领域内作出的伟大贡献,1990年美国前总统布什授予约翰·阿坦那索夫全美最高科技奖项----“国家科技奖”。

发展

1、第1代:电子管数字机(1946—1958年)

Python全栈开发之路day1世界上第一台电脑硬件方面,逻辑元件采用的是真空电子管,主存储器采用汞延迟线、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用的是磁带。软件方面采用的是机器语言、汇编语言。应用领域以军事和科学计算为主。特点是体积大、功耗高、可靠性差。速度慢(一般为每秒数千次至数万次)、价格昂贵,但为以后的计算机发展奠定了基础。

2、第2代:晶体管数字机(1958—1964年)

硬件方的操作系统、高级语言及其编译程序。应用领域以科学计算和事务处理为主,并开始进入工业控制领域。特点是体积缩小、能耗降低、可靠性提高、运算速度提高(一般为每秒数10万次,可高达300万次)、性能比第1代计算机有很大的提高。

3、第3代:集成电路数字机(1964—1970年)

硬件方面,逻辑元件采用中、小规模集成电路(MSI、SSI),主存储器仍采用磁芯。软件方面出现了分时操作系统以及结构化、规模化程序设计方法。特点是速度更快(一般为每秒数百万次至数千万次),而且可靠性有了显著提高,价格进一步下降,产品走向了通用化、系列化和标准化等。应用领域开始进入文字处理和图形图像处理领域。

       4、第4代:大规模集成电路机(1970年至今)

       硬件方面,逻辑元件采用大规模和超大规模集成电路(LSI和VLSI)。软件方面出现了数据库管理系统网络管理系统面向对象语言等。特点是1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。应用领域从科学计算、事务管理、过程控制逐步走向家庭。

由于集成技术的发展,半导体芯片集成度更高,每块芯片可容纳数万乃至数百万个晶体管,并且可以把运算器和控制器都集中在一个芯片上、从而出现了微处理器,并且可以用微处理器和大规模、超大规模集成电路组装成微型计算机,就是我们常说的微电脑或PC机。微型计算机体积小,价格便宜,使用方便,但它的功能和运算速度已经达到甚至超过了过去的大型计算机。另一方面,利用大规模、超大规模集成电路制造的各种逻辑芯片,已经制成了体积并不很大,但运算速度可达一亿甚至几十亿次的巨型计算机。我国继1983年研制成功每秒运算一亿次的银河Ⅰ这型巨型机以后,又于1993年研制成功每秒运算十亿次的银河Ⅱ型通用并行巨型计算机。这一时期还产生了新一代的程序设计语言以及数据库管理系统和网络软件等。

几十年来,随着物理元、器件的变化,不仅计算机主机经历了更新换代,它的外部设备也在不断地变革。比如外存储器,由最初的阴极射线显示管发展到磁芯、磁鼓,以后又发展为通用的磁盘,现又出现了体积更小、容量更大、速度更快的只读光盘(CD—ROM)。

5.可以攻人类消磨时间,让相隔俩地的情人加强感情,供人类做很多很多不可能一下完成的事

 

Python全栈开发之路day1电子计算机图册(15)运算速度快:计算机内部电路组成,可以高速准确地完成各种算术运算。当今计算机系统的运算速度已达到每秒万亿次,微机也可达每秒亿次以上,使大量复杂的科学计算问题得以解决。例如:卫星轨道的计算、大型水坝的计算、24小时天气算需要几年甚至几十年,而在现代社会里,用计算机只需几分钟就可完成。

Python全栈开发之路day1台式电脑计算精确度高:科学技术的发展特别是尖端科学技术的发展,需要高度精确的计算。计算机控制的导弹之所以能准确地击中预定的目标,是与计算机的精确计算分不开的。一般计算机可以有十几位甚至几十位(二进制)有效数字,计算精度可由千分之几到百万分之几,是任何计算工具所望尘莫及的。

逻辑运算能力强:计算机不仅能进行精确计算,还具有逻辑运算功能,能对信息进行比较和判断。计算机能把参加运算的数据、程序以及中间结果和最后结果保存起来,并能根据判断的结果自动执行下一条指令以供用户随时调用。

存储容量大:计算机内部的存储器具有记忆特性,可以存储大量的信息。这些信息,不仅包括各类数据信息,还包括加工这些数据的程序。

自动化程度高:由于计算机具有存储记忆能力和逻辑判断能力,所以人们可以将预先编好的程序组纳入计算机内存,在程序控制下,计算机可以连续、自动地工作,不需要人的干预。

性价比高:几乎每家每户都会有电脑,越来越普遍化、大众化,22世纪电脑必将成为每家每户不可缺少的电器之一。计算机发展很迅速,有台式的还有笔记本。

 

硬件系统


 

         1、电源

        电源是电脑中不可缺少的供电设备,它的作用是将220V交流电转换为电脑中使用的5V、12V、3.3V直流电,其性能的好坏,直接影响到其他设备工作的稳定性,进而会影响整机的稳定性。手提电脑在自带锂电池情况下,为手提电脑提供有效电源。

         2、主板

Python全栈开发之路day1笔记本电脑主板是电脑中各个部件工作的一个平台,它把电脑的各个部件紧密连接在一起,各个部件通过主板进行数据传输。也就是说,电脑中重要的“交通枢纽”都在主板上,它工作的稳定性影响着整机工作的稳定性。

       3、CPU

       CPU即*处理器,是一台计算机的运算核心和控制核心。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU由运算器、控制器、寄存器、高速缓存及实现它们之间联系的数据、控制及状态的总线构成。作为整个系统的核心,CPU也是整个系统最高的执行单元,因此CPU已成为决定电脑性能的核心部件,很多用户都以它为标准来判断电脑的档次。

       4、内存

        内存又叫内部存储器或者是随机存储器(RAM),分为DDR内存SDRAM内存,(但是SDRAM由于容量低,存储速度慢,稳定性差,已经被DDR淘汰了)内存属于电子式存储设备,它由电路板和芯片组成,特点是体积小,速度快,有电可存,无电清空,即电脑在开机状态时内存中可存储数据,关机后将自动清空其中的所有数据。 内存有DDR、DDR2、DDR3、DDR4四大类,容量1-64GB。

       5、硬盘

       硬盘属于外部存储器,机械硬盘由金属磁片制成,而磁片有记忆功能,所以储到磁片上的数据,不论在开机,还是关机,都不会丢失。硬盘容量很大,已达TB级,尺寸有3.5、2.5、1.8、1.0英寸等,接口有IDE、SATA、SCSI等,SATA最普遍。移动硬盘是以硬盘为存储介质,强调便携性的存储产品。市场上绝大多数的移动硬盘都是以标准硬盘为基础的,而只有很少部分的是以微型硬盘(1.8英寸硬盘等)为基础,但价格因素决定着主流移动硬盘还是以标准笔记本硬盘为基础。因为采用硬盘为存储介质,因此移动硬盘在数据的读写模式与标准IDE硬盘是相同的。移动硬盘多采用USB、IEEE1394等传输速度较快的接口,可以较高的速度与系统进行数据传输。固态硬盘用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片)组成。固态硬盘在产品外形和尺寸上也完全与普通硬盘一致但是固态硬盘比机械硬盘速度更快。

       6、声卡

       声卡是组成多媒体电脑必不可少的一个硬件设备,其作用是当发出播放命令后,声卡将电脑中的声音数字信号转换成模拟信号送到音箱上发出声音。

       7、显卡

       显卡在工作时与显示器配合输出图形、文字,作用是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,是“人机对话”的重要设备之一。

       8、网卡

       网卡是工作在数据链路层的网路组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。网卡的作用是充当电脑与网线之间的桥梁,它是用来建立局域网并连接到Internet的重要设备之一。

整合型主板中常把声卡、显卡、网卡部分或全部集成在主板上。

       9、调制解调器

       英文名为“Modem”,俗称“猫”,即调制解调器,类型有内置式和外置式,有线式和无线式。调制解调器是通过电话线上网时必不可少的设备之一。它的作用是将电脑上处理的数字信号转换成电话线传输的模拟信号。随着ADSL宽带网的普及,内置式调制解调器逐渐退出了市场。

       10、光驱

        英文名为“Optical Disk driver”,电脑用来读写光碟内容的机器,也是在台式机和笔记本便携式电脑里比较常见的一个部件。随着多媒体的应用越来越广泛,使得光驱在计算机诸多配件中已经成为标准配置。光驱可分为CD-ROM驱动器、DVD光驱DVD-ROM)、康宝(COMBO)和DVD刻录机DVD-RAM)等。读写的能力和速度也日益提升,4× 16× 32× 40× 48×。

       11、显示器

       英文名为“monitor”,显示器有大有小,有薄有厚,品种多样,其作用是把电脑处理完的结果显示出来。它是一个输出设备,是电脑必不可缺少的部件之一。分为CRT、LCD、LED三大类,接口有VGA、DVI、HDMI、DP四类。

       12、键盘

       英文名为“Keyboard”,分为有线和无线,键盘是主要的人工学输入设备,通常为104或105键,用于把文字、数字等输到电脑上,以及电脑操控。

       13、鼠标

       英文名为“Mouse”,当人们移动鼠标时,电脑屏幕上就会有一个箭头指针跟着移动,并可以很准确指到想指的位置,快速地在屏幕上定位,它是人们使用电脑不可缺少的部件之一。 键盘鼠标接口有PS/2和USB两种。硬件的鼠标分为光电和机械两种(机械已被光电淘汰)。

       14、音箱

       英文名为“Loud speaker”,通过音频线连接到功率放大器,再通过晶体管把声音放大,输出到喇叭上,从而使喇叭发出电脑的声音。一般的电脑音箱可分为2、2.1 、3 .1、4、4.1、5.1、7.1这几种,音质也各有差异。

       15、打印机

        英文名为“Printer”,通过它可以把电脑中的文件打印到纸上,它是重要的输出设备之一。在打印机领域形成了针式打印机喷墨打印机激光打印机三足鼎立的主流产品,各自发挥其优点,满足各界用户不同的需求。

       16、视频设备

       如摄像头、扫描仪、数码相机、数码摄像机电视卡等设备,用于处理视频信号。

       17、闪存盘

      英文名为“Flash disk”,闪存盘通常也被称作优盘,U盘,闪盘,是一个通用串行总线USB接口的无需物理驱动器的微型高容量移动存储产品,它采用的存储介质为闪存存储介质(Flash Memory)。闪存盘一般包括闪存(Flash Memory)、控制芯片和外壳。闪存盘具有可多次擦写、速度快而且防磁、防震、防潮的优点。闪盘采用流行的USB接口,体积只有大拇指大小,重量约20克,不用驱动器,无需外接电源,即插即用,不同电脑之间进行文件交流,存储容量从1~128GB不等,满足不同的需求。

Python全栈开发之路day1读卡器

       18、移动存储卡及读卡器

       存储卡是利用闪存(Flash Memory)技术达到存储电子信息的存储器,一般应用在数码相机、掌上电脑、MP3、MP4等小型数码产品中作为存储介质,所以样子小巧,犹如一张卡片,所以称之为闪存卡。根据不同的生产厂商和不同的应用,闪存卡有Smart Media(SM卡)、Compact Flash(CF卡),Multi Media Card(MMC卡),Secure Digital(SD卡)、Memory Stick(记忆棒),TF卡等多种类型,这些闪存卡虽然外观、规格不同,但是技术原理都是相同的。由于闪存卡本身并不能直接被电脑辨认,读卡器就是一个两者的沟通桥梁。读卡器Card Reader)可使用很多种存储卡,如Compact Flash or Smart Media or Microdrive存储卡等,作为存储卡的信息存取装置。读卡器使用USB1.1/USB2.0的传输介面,支持热拔插。与普通USB设备一样,只需插入电脑的USB端口,然后插用存储卡就可以使用了。 按照速度来划分有USB1.1、USB2.0以及USB3.0,按用途来划分,有单一读卡器和多合一读卡器

 

发展趋势


 


Python全栈开发之路day1随着科技的进步,各种计算机技术、网络技术的飞速发展,计算机的发展已经进入了一个快速而又崭新的时代,计算机已经从功能单一、体积较大发展到了功能复杂、体积微小、资源网络化等。计算机的未来充满了变数,性能的大幅度提高是不可置疑的,而实现性能的飞跃却有多种途径。不过性能的大幅提升并不是计算机发展的唯一路线,计算机的发展还应当变得越来越人性化,同时也要注重环保等等。

计算机从出现至今,经历了机器语言、程序语言、简单操作系统和Linux、Macos、BSD、Windows等现代操作系统四代,运行速度也得到了极大的提升,第四代计算机的运算速度已经达到几十亿次每秒。计算机也由原来的仅供军事科研使用发展到人人拥有,计算机强大的应用功能,产生了巨大的市场需要,未来计算机性能应向着微型化、网络化、智能化和巨型化的方向发展。

巨型化

巨型化是指为了适应尖端科学技术的需要,发展高速度、大存储容量和功能强大的超级计算机。随着人们对计算机的依赖性越来越强,特别是在军事和科研教育方面对计算机的存储空间和运行速度等要求会越来越高。此外计算机的功能更加多元化。

微型化

随着微型处理器(CPU)的出现,计算机中开始使用微型处理器,使计算机体积缩小了,成本降低了。另一方面,软件行业的飞速发展提高了计算机内部操作系统的便捷度,计算机外部设备也趋于完善。计算机理论和技术上的不断完善促使微型计算机很快渗透到全社会的各个行业和部门中,并成为人们生活和学习的必须品。四十年来,计算机的体积不断的缩小,台式电脑、笔记本电脑、掌上电脑、平板电脑体积逐步微型化,为人们提供便捷的服务。因此,未来计算机仍会不断趋于微型化,体积将越来越小。

网络化

互联网将世界各地的计算机连接在一起,从此进入了互联网时代。计算机网络化彻底改变了人类世界,人们通过互联网进行沟通、交流(OICQ、微博等),教育资源共享(文献查阅、远程教育等)、信息查阅共享(百度、谷歌)等,特别是无线网络的出现,极大的提高了人们使用网络的便捷性,未来计算机将会进一步向网络化方面发展。

人工智能化

计算机人工智能化是未来发展的必然趋势。现代计算机具有强大的功能和运行速度,但与人脑相比,其智能化和逻辑能力仍有待提高。人类不断在探索如何让计算机能够更好的反应人类思维,使计算机能够具有人类的逻辑思维判断能力,可以通过思考与人类沟通交流,抛弃以往的依靠通过编码程序来运行计算机的方法,直接对计算机发出指令。

多媒体化

传统的计算机处理的信息主要是字符和数字。事实上,人们更习惯的是图片、文字、声音、像等多种形式的多媒体信息多媒体技术可以集图形、图像、音频、视频、文字为一体,使信息处理的对象和内容更加接近真实世界。

技术结合

计算机微型处理器(CPU)以晶体管为基本元件,随着处理器的不断完善和更新换代的速度加快,计算机结构和元件也会发生很大的变化。随着光电技术、量子技术和生物技术的发展,对新型计算机的发展具有极大的推动作用。

20世纪80年代以来ALU和控制单元(二者合成*处理器,即CPU)逐渐被整合到一块集成电路上,称作微处理器。这类计算机的工作模式十分直观:在一个时钟周期内,计算机先从存储器中获取指令和数据,然后执行指令,存储数据,再获取下一条指令。这个过程被反复执行,直至得到一个终止指令。由控制器解释,运算器执行的指令集是一个精心定义的数目十分有限的简单指令集合。

中国发展

我国已成为电子信息产品的制造大国,并逐步确立在全球产业分工体系中的重要地位,我国计算机产业未来将呈现六大发展趋势。

1、大容量磁盘、环保型显示器走向普及;

2、笔记本显示器走向两极分化;

3、内存技术换代,软驱退出市场;

4、无线应用成为主流;

5、IA服务器市场份额将进一步提高;

6、服务器低端市场细分化加剧。

 

计算机分类


 

知道了计算机的基本组成与周边装置,也知道其实计算机的CPU种类非常的多,再来我们想要了解的是,计算机如何分类? 计算机的分类非常多种,如果以计算机的复杂度与运算能力进行分类的话,主要可以分为这几类:

  • 超级计算机(Supercomputer)
    超级计算机是运作速度最快的计算机,但是他的维护、操作费用也最高!主要是用於需要有高速计算的计画中。 例如:国防军事、气象预测、太空科技,用在模拟的领域较多。详情也可以参考: 国家高速网络与计算中心http://www.nchc.org.tw的介绍! 至於全世界最快速的前500大超级计算机,则请参考:http://www.top500.org

  • 大型计算机(Mainframe Computer)
    大型计算机通常也具有数个高速的CPU,功能上虽不及超级计算机,但也可用来处理大量数据与复杂的运算。 例如大型企业的主机、全国性的证券交易所等每天需要处理数百万笔数据的企业机构, 或者是大型企业的数据库服务器等等。

  • 迷你计算机(Minicomputer)
    迷你计算机仍保有大型计算机同时支持多使用者的特性,但是主机可以放在一般作业场所, 不必像前两个大型计算机需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。

  • 工作站(Workstation)
    工作站的价格又比迷你计算机便宜许多,是针对特殊用途而设计的计算机。在个人计算机的效能还没有提升到目前的状况之前, 工作站计算机的性能/价格比是所有计算机当中较佳的,因此在学术研究与工程分析方面相当常见。

  • 微计算机(Microcomputer)
    又可以称为个人计算机,也是我们这里主要探讨的目标!体积最小,价格最低,但功能还是五脏俱全的! 大致又可分为桌上型、笔记型等等。

若光以效能来说,目前的个人计算机效能已经够快了,甚至已经比工作站等级以上的计算机运算速度还要快! 但是工作站计算机强调的是稳定不当机,并且运算过程要完全正确,因此工作站以上等级的计算机在设计时的考量与个人计算机并不相同啦! 这也是为啥工作站等级以上的个人计算机售价较贵的原因。

 

计算机上面常用的计算单位(容量,速度等)


 计算机的运算能力是由速度来决定的,而存放在计算机储存设备当中的数据容量也是有单位的。

        容量单位

计算机依有没有通电来记录信息,所以理论上它只认识 0 与 1 而已。0/1 的单位我们称为 bit。但 bit 实在太小了, 并且在储存数据时每份简单的数据都会使用到 8 个 bits 的大小来记录,因此定义出 byte 这个单位,他们的关系为:

1 Byte = 8 bits

不过同样的,Byte 还是太小了,在较大的容量情况下,使用 byte 相当不容易判断数据的大小,举例来说,1000000 bytes 这样的显示方式你能够看得出有几个零吗?所以后来就有一些常见的简化单位表示法,例如 K 代表 1024,M 代表 1024K 等。 而这些单位在不同的进位制下有不同的数值表示,底下就列出常见的单位与进位制对应:

进制位 K M G T P
二进位 1024 1024K 1024M 1024G 1024T
十进位 1000 1000K 1000M 1000G 1000T

一般来说,档案容量使用的是二进位的方式,所以 1 GBytes 的档案大小实际上为:1024x1024x1024 Bytes 这么大! 速度单位则常使用十进位,例如 1GHz 就是 1000x1000x1000 Hz 的意思。


 

  • 速度单位

CPU的运算速度常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是秒分之一。而在网络传输方面,由於网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits per second,亦即是每秒多少 Mbit。举例来说,大家常听到的 8M/1M ADSL 传输速度,如果转成档案容量的 byte 时,其实理论最大传输值为:每秒 1Mbyte/ 每秒125Kbyte的上传/下载容量喔!

 

例题:
假设你今天购买了500GB的硬盘一颗,但是格式化完毕后却只剩下460GB左右的容量,这是什么原因?
答:
因为一般硬盘制造商会使用十进位的单位,所以500GByte代表为500*1000*1000*1000Byte之意。 转成档案的容量单位时使用二进位(1024为底),所以就成为466GB左右的容量了。

硬盘厂商并非要骗人,只是因为硬盘的最小物理量为512Bytes,最小的组成单位为磁区(sector), 通常硬盘容量的计算采用『多少个sector』,所以才会使用十进位来处理的。相关的硬盘信息在这一章后面会提到的!

 

 

字符编码


 

字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。
在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。
 

ASCII

美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符
ASCII(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值。
ASCII码于1961年提出,用于在不同计算机硬件软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。比较EBCDIC。其中95个字符可以显示。另外33个不可以显示。 标准ASCII码为7位,扩充为8位。
目前使用最广泛的西文字符集及其编码是 ASCII 字符集和 ASCII 码( ASCII 是 American Standard Code for Information Interchange 的缩写),它同时也被国际标准化组织( International Organization for Standardization, ISO )批准为国际标准。
基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。标准 ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准。下表展示了基本 ASCII 字符集及其编码:
字母和数字的 ASCII 码的记忆是非常简单的。我们只要记住了一个字母或数字的 ASCII 码(例如记住 A 为 65 , 0 的 ASCII 码为 48 ),知道相应的大小写字母之间差 32 ,就可以推算出其余字母、数字的 ASCII 码。
虽然标准 ASCII 码是 7 位编码,但由于计算机基本处理单位为字节( 1byte = 8bit ),所以一般仍以一个字节来存放一个 ASCII 字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为 0 (在数据传输时可用作奇偶校验位)。
由于标准 ASCII 字符集字符数目有限,在实际应用中往往无法满足要求。为此,国际标准化组织又制定了 ISO2022 标准,它规定了在保持与 ISO646 兼容的前提下将 ASCII 字符集扩充为 8 位代码的统一方法。 ISO 陆续制定了一批适用于不同地区的扩充 ASCII 字符集,每种扩充 ASCII 字符集分别可以扩充 128 个字符,这些扩充字符的编码均为高位为 1 的 8 位代码(即十进制数 128~255 ),称为扩展 ASCII 码。
通过了解字符的存储编码,可以解决很多由编码不匹配引起的问题,比如网页乱码、邮件乱码,本文简单扼要地阐明了ASCII编码、EBCDIC编码、GB2312编码、Unicode编码、UTF-8编码、以及Base64编码。

 

编码

在显示器上看见的文字、图片等信息在电脑里面
其实并不是我们看见的样子,即使你知道所有信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1,凹的地方代表数字0。硬盘只能用0和1来表示所有文字、图片等信息。那么字母”A”在硬盘上是如何存储的呢?可能小张计算机存储字母”A”是1100001,而小王存储字母”A”是11000010,这样双方交换信息时就会误解。比如小张把1100001发送给小王,小王并不认为1100001是字母”A”,可能认为这是字母”X”,于是小王在用记事本访问存储在硬盘上的1100001时,在屏幕上显示的就是字母”X”。也就是说,小张和小王使用了不同的编码表。小张用的编码表是ASCII,ASCII编码表把26个字母都一一的对应到2进制1和0上;小王用的编码表可能是EBCDIC,只不过EBCDIC编码与ASCII编码中的字母和01的对应关系不同。一般地说,开放的操作系统(LINUX 、WINDOWS等)采用ASCII 编码,而大型主机系统(MVS 、OS/390等)采用EBCDIC 编码。在发送数据给对方前,需要事先告知对方自己所使用的编码,或者通过转码,使不同编码方案的两个系统可沟通自如。
ASCII码使用7位2进制数表示一个字符,7位2进制数可以表示出2的7次方个字符,共128个字符。EBCDIC码使用8位,可以表示出2的8次方个字符,256个字符。
无论是ASCII码还是EBCDIC码,都无法对拥有几万个的汉字进行编码。因为上面已经提过,7位2进制数最多对应上128个字符,8位最多对应上256个字符。
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序而对文本显示有不同的影响。
32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字,65~90为26个大写英文字母,97~122为26个小写字母,其余为一些标点符号、运算符号等。[1] 

 

MBCS

为了扩充ASCII编码,以用于显示本国的语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码,又称为"MBCS(Muilti-Bytes Charecter Set,多字节字符集)"。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码,所以在中文 windows下要转码成gb2312,gbk只需要把文本保存为ANSI 编码即可。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。一个很大的缺点是,同一个编码值,在不同的编码体系里代表着不同的字。这样就容易造成混乱。导致了unicode码的诞生。
其中每个语言下的ANSI编码,都有一套一对一的编码转换器,Unicode变成所有编码转换的中间介质。所有的编码都有一个转换器可以转换到Unicode,而Unicode也可以转换到其他所有的编码。
 

GB2312

GB2312 也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,为了满足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉字字符集国家标准编码,统称为GB码,或国标码。其中最有影响的是于1980年发布的《信息交换用汉字编码字符集 基本集》,标准号为GB 2312-1980,因其使用非常普遍,也常被通称为国标码。GB2312编码通行于我国内地;新加坡等地也采用此编码。几乎所有的中文系统和国际化的软件都支持GB 2312。
GB 2312是一个简体中文字符集,由6763个常用汉字和682个全角的非汉字字符组成。其中汉字根据使用的频率分为两级。一级汉字3755个,二级汉字3008个。由于字符数量比较大,GB2312采用了二维矩阵编码法对所有字符进行编码。首先构造一个94行94列的方阵,对每一行称为一个“区”,每一列称为一个“位”,然后将所有字符依照下表的规律填写到方阵中。这样所有的字符在方阵中都有一个唯一的位置,这个位置可以用区号、位号合成表示,称为字符的区位码。如第一个汉字“啊”出现在第16区的第1位上,其区位码为1601。因为区位码同字符的位置是完全对应的,因此区位码同字符之间也是一一对应的。这样所有的字符都可通过其区位码转换为数字编码信息。GB2312字符的排列分布情况见表1-4。
表1-4 GB2312 字符编码分布表
分区范围
符号类型
第01区
中文标点、数学符号以及一些特殊字符
第02区
各种各样的数学序号
第03区
全角西文字符
第04区
日文平假名
第05区
日文片假名
第06区
希腊字母表
第07区
俄文字母表
第08区
中文拼音字母表
第09区
制表符号
第10-15区
无字符
第16-55区
一级汉字(以拼音字母排序)
第56-87区
二级汉字(以部首笔画排序)
第88-94区
无字符
GB2312字符在计算机中存储是以其区位码为基础的,其中汉字的区码和位码分别占一个存储单元,每个汉字占两个存储单元。由于区码和位码的取值范围都是在1-94之间,这样的范围同西文的存储表示冲突。例如汉字‘珀’在GB2312中的区位码为7174,其两字节表示形式为71,74;而两个西文字符‘GJ’的存储码也是71,74。这种冲突将导致在解释编码时到底表示的是一个汉字还是两个西文字符将无法判断。
为避免同西文的存储发生冲突,GB2312字符在进行存储时,通过将原来的每个字节第8bit设置为1同西文加以区别,如果第8bit为0,则表示西文字符,否则表示GB2312中的字符。实际存储时,采用了将区位码的每个字节分别加上A0H(160)的方法转换为存储码,计算机存储规则是此编码的补码,而且是位码在前,区码在后。例如汉字‘啊’的区位码为1601,其存储码为B0A1H,其转换过程为:
区位码
区码转换
位码转换
存储码
1001H
10H+A0H=B0H
01H+A0H=A1H
B0A1H
GB2312编码用两个字节(8位2进制)表示一个汉字,所以理论上最多可以表示256×256=65536个汉字。但这种编码方式也仅仅在中国行得通,如果您的网页使用的GB2312编码,那么很多外国人在浏览你的网页时就可能无法正常显示,因为其浏览器不支持GB2312编码。当然,中国人在浏览外国网页(比如日文)时,也会出现乱码或无法打开的情况,因为我们的浏览器没有安装日文的编码表。
 

GBK

GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称Chinese Internal Code Specification。GBK编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。GB2312码是*国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,1980年由国家标准总局发布。基本集共收入汉字6763个和非汉字图形字符682个,通行于*。新加坡等地也使用此编码。GBK是对GB2312-80的扩展,也就是CP936字码表 (Code Page 936)的扩展(之前CP936和GB 2312-80一模一样)。
 

基本简介

GB 2312的出
(0)
打赏 Python全栈开发之路day1 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

Python全栈开发之路day1
验证码: Python全栈开发之路day1