Py徐少攻关之初探 编码 语言分类 (2)

操做系统

 1.管理软硬件资源
 2.管理调度计算机内部任务
 3.提供给用户和其余计算机服务接口
javascript

编码

ASSIC 每个字符统一须要8bit来存储php

 

 

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的出现,基本知足了汉字的计算机处理须要,但对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这致使了后来GBK及GB 18030汉字 字符集的出现。

 

GBK采用双 字节表示,整体编码范围为8140-FEFE,首字节在81-FE 之间,尾字节在40-FE 之间,剔除 xx7F一条线。总计23940 个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号883 个。P-Windows3.2和苹果OS以GB2312为基本 汉字编码, Windows 95/98则以GBK为基本汉字编码。

 

有些汉字用 五笔和拼音都打不出来,如:溙(五笔IDWI),须调出GBK 字符集才能打出这个字。 极品五笔中可右击 输入法图标,设置,属性中选GBK 字符集极点五笔中可点击工具条中相关图标进行转换。

 

Big5

 

在台湾、香港与澳门地区,使用的是繁体中文 字符集。而1980年发布的GB2312面向 简体中文 字符集,并不支持繁体汉字。在这些使用繁体中文 字符集的地区,一度出现过不少不一样厂商提出的字符集编码,这些编码彼此互不兼容,形成了信息交流的困难。为统一繁体 字符集编码,1984年,台湾五大厂商宏碁、神通、佳佳、零壹以及大众一同制定了一种繁体中文编码方案,因其来源被称为五大码,英文写做Big5,后来按英文翻译回汉字后,广泛被称为 大五码

 

大五码是一种繁体中文汉字 字符集,其中繁体汉字13053个,808个标点符号、希腊字母及特殊符号。 大五码的编码码表直接针对 存储而设计,每一个字符统一使用两个 字节存储表示。第1 字节范围81H-FEH,避开了同ASCII码的冲突,第2字节范围是40H-7EH和A1H-FEH。由于Big5的字符编码范围同GB2312字符的存储码范围存在冲突,因此在同一正文不能对两种 字符集的字符同时支持。

 

 

 

Unicode

 

如上ANSI编码条例中所述,世界上存在着多种编码
方式,在ANSi编码下,同一个编码值,在不一样的编码体系里表明着不一样的字。在简体中文系统下,ANSI 编码表明 GB2312 编码,在日文 操做系统下,ANSI 编码表明 JIS 编码,可能最终显示的是中文,也可能显示的是日文。在ANSI编码体系下,要想打开一个文本文件,不但要知道它的编码方式,还要安装有对应编码表,不然就可能没法读取或出现 乱码。为何 电子邮件和网页都常常会出现 乱码,就是由于信息的提供者多是日文的ANSI编码体系和信息的读取者多是中文的编码体系,他们对同一个二进制编码值进行显示,采用了不一样的编码,致使乱码。这个问题促使了unicode码的诞生。

 

若是有一种编码,将世界上全部的符号都归入其中,不管是英文、日文、仍是中文等,你们都使用这个 编码表,就不会出现编码不匹配现象。每一个符号对应一个惟一的编码, 乱码问题就不存在了。这就是Unicode编码。

 

Unicode固然是一个很大的集合,如今的规模能够容纳100多万个符号。每一个符号的编码都不同,好比,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,“汉”这个字的Unicode编码是U+6C49。

 

Unicode当然统一了编码方式,可是它的效率不高,好比UCS-4(Unicode的标准之一)规定用4个 字节 存储一个符号,那么每一个英文字母前都必然有三个字节是0,这对存储和传输来讲都很耗资源。

 

UTF-8

为了提升Unicode的编码效率,因而就出现了UTF-8编码。UTF-8能够根据不一样的符号自动选择编码的长短。好比英文字母能够只用1个 字节就够了。
UTF-8的编码是这样得出来的,以”汉”这个字为例:                  汉字须要3个字节
“汉”字的Unicode编码是U+00006C49,而后把U+00006C49经过UTF-8编码器进行编码,最后输出的UTF-8编码是E6B189。
 
更多关于编码的文章 http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html
 
 在windows下要用GBK进行编码
 

编程语言介绍

 

go ===Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序能够媲美C或C++代码的速度,并且更加安全、支持并行进程。html

                                                                                                                      推测这个将来会很火
   lua = nginx 的脚本语言, ngnix 是时下最nb web服务器     前端

lua = nginx 的脚本语言, ngnix 是时下最nb web服务器java

 php = 1994, 纯web开发语言, 1994 Netscape 浏览器诞生了node

java = 1995 由sun 公司开发出来,java 虚拟机 支持跨平台 python

shell = 脚本语言, 简单易学,基于unix,linux, 作一些简单的系统管理任务, 运维人员必学linux

javascript = 是当下使用最为普遍的语言,主要写前端的语言,
                    nodejs =后端 全栈式的语言nginx

 编程语言分类

编程语言主要从如下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一个分类表明什么意思呢,咱们一块儿来看一下。c++

 

编译和解释的区别是什么?

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快; 

解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的. 

这是由于计算机不能直接认识并执行咱们写的语句,它只能认识机器语言(是二进制的形式)

 

 

编译型vs解释型

编译型
优势:编译器通常会有预编译的过程对代码进行优化。由于编译只作一次,运行时不须要编译,因此编译型语言的程序执行效率高。能够脱离语言环境独立运行。
缺点:编译以后若是须要修改就须要整个模块从新编译。编译的时候根据对应的运行环境生成机器码,不一样的操做系统之间移植就会有问题,须要根据运行的操做系统环境编译不一样的可执行文件。

解释型
优势:有良好的平台兼容性,在任何环境中均可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就能够,能够快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

 

 

 编译型=所有翻译 ,再执行 ,翻译=编译 ,c ,c++

解释性=边执行边翻译   python , php ,java , c#,perl ruby javascript

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

cmd python的使用

开始-->cmd-->cd c:\ -->dir

dir=查看当前目录文件列表         Tab键自动补全

.py是文件格式

将python安装目录 放在环境变量中

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Python初探

print(" ")

变量直接写  z=x*y

变量的命名  suduentNumber 第一个不大写  或者student_number

python不区分常量或者变量 ,因此潜规则就是所有大写的变量的变量名来表明为常量

 

变量赋值  赋值的是变量在内存里面的值

del 变量 也就是删除变量 

变量的从新指向 也是删除这块变量的内存    --------------------------------------->>>>>python里面有内存机制  可是仍是本身来写一下

 

在python 2.0版本中  在程序中 前加上 #! -*- conding:utf-8 -*-      或者#conding :utf-8

msg=u"我爱北京天安门"    #加u就会变成unicode编码

print msg

print type(msg) # 这个是打印类型

 

python 3.0默认支持中文不会出现乱码

 

str(a)     变量的强制转换

 

 

 

 

 

 

 

相关文章
相关标签/搜索