① 计算机中有哪些数字编码
电脑中的数字编码称为二进制。不管是字符编码还是汉字编码,在电脑里都是用二进制数字方式存储的。
由于电路的复杂性因素,电脑中都使用二进制数,只有0和1两个数码,逢二进一,最容易用电路来表达,比如0代表电路不通,1代表电路通畅。我们平时用电脑时感觉不到它是在用二进制计算是因为电脑会把你输入的信息自动转换成二进制,算出的二进制数再转换成你能看到的信息显示到屏幕上。
一、ASCII码。
美国信息交换标准码是由美国国家标准学会(American National Standard Institute,ANSI)制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(ISO)定为国际标准,称为ISO646标准。适用于所有拉丁文字字母。
ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符(这里需要特别注意:ASCII码与标准ASCII码的位数上的区分,标准ASCII码是7位二进制表示)。在电脑里,数字和字母都是用ASCII码来存储的,这就是为什么一个英文字母或半角的数字、标点符号通常占一个字节的原因。
二、汉字编码。
电脑内部汉字信息的存储运算的代码有四种:输入码、国标码、内码和字型码。
输入码:包括拼音编码和字型编码。微软拼音ABC就是拼音编码,五笔字型输入法就是字型编码。
国标码:又称为汉字交换码,在计算机之间交换信息用。用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为2的14次幂,就是16384个。将汉字区位码的高位字节、低位字节各加十进制数32(即十六进制数的20),便得到国标码。例如“中”字的国标码为8680(十进制)或7468(十六进制)。
内码:汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。无论使用何种输入码,进入计算机后就立即被转换为机内码。规则是将国标码的高位字节、低位字节各自加上128(十进制)或80(十六进制)。例如,“中”字的内码以十六进制表示时应为F4E8。这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。
字型码:表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。通常用点阵、矢量函数等表示。用点阵表示时,字形码指的就是这个汉字字形点阵的代码。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16′16点阵、提高型汉字为24′24点阵、48′48点阵等。如果是24′24点阵,每行24个点就是24个二进制位,存储一行代码需要3个字节。那么,24行共占用3′24=72个字节。计算公式:每行点数/8′行数。依此,对于48′48的点阵,一个汉字字形需要占用的存储空间为48/8′48=6′48=288个字节。
② 最常用的数值数据类型有哪些
一、 整数数据类型:整数数据类型是最常用的数据类型之一。
1、INT (INTEGER)
INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
2、SMALLINT
SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
二、 浮点数据类型:浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。
1、REAL 数据类型
REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。 每个REAL类型的数据占用4 个字节的存储空间。
2、FLOAT
FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。
当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。
三、 二进制数据类型
1、BINARY
BINARY 数据类型用于存储二进制数据。其定义形式为BINARY( n), n 表示数据的长度,取值为1 到8000 。在使用时必须指定BINARY 类型数据的大小,至少应为1 个字节。BINARY 类型数据占用n+4 个字节的存储空间。
在输入数据时必须在数据前加上字符“0X” 作为二进制标识,如:要输入“abc ”则应输入“0xabc ”。若输入的数据过长将会截掉其超出部分。若输入的数据位数为奇数,则会在起始符号“0X ”后添加一个0,如上述的“0xabc ”会被系统自动变为“0x0abc”。
2、VARBINARY
VARBINARY数据类型的定义形式为VARBINARY(n)。 它与BINARY 类型相似,n 的取值也为1 到8000, 若输入的数据过长,将会截掉其超出部分。
不同的是VARBINARY数据类型具有变动长度的特性,因为VARBINARY数据类型的存储长度为实际数值长度+4个字节。当BINARY数据类型允许NULL 值时,将被视为VARBINARY数据类型。
四、 逻辑数据类型
BIT: BIT数据类型占用1 个字节的存储空间,其值为0 或1 。如果输入0 或1 以外的值,将被视为1。 BIT 类型不能定义为NULL 值(所谓NULL 值是指空值或无意义的值)。
五、 字符数据类型:字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号” 。
CHAR 数据类型的定义形式为CHAR[ (n) ]。 以CHAR 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间,n 的取值为1 到8000, 即可容纳8000 个ANSI 字符。
若不指定n 值,则系统默认值为1。 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。
③ 数据编码的常见编码
常见的数据编码方案有:单极性码、极性码、双极性码、归零码、双相码、不归零码、曼彻斯特编码、差分曼彻斯特编码、多电平编码、4B/5B编码。
单极性码:在这种编码方案中,只适用正的(或负的)电压表示数据。单极性码用在电传打字机接口以及PC机和TTY兼容的接口中,这种代码需要单独的时钟信号配合族悉携定时,否则当传送一长串0或1时,发送机和接收机的时钟将无法定时,单极性码的抗噪声特性也不好。
极性码:在这种编码中,分别用正和负电压表示二进制数“0”和“1”。这种代码的电平差比单极码大,因而抗干扰特性好,但仍需另外的时钟信号。
双极性码:信号在三个电平(正、负、零)之间变化。一种典型的双极性码就是信号反转交替编码(AMI)。在AMI信号中,数据流遇到“1”时使电平在正和负之间交替翻转,而遇到“0”时则保持零电平。
归零码:(Return to Zero,RZ)码元中间信号回归到零电平,比如从正电平到零电平的转换表示码元“0”,而从负电平到零电平表示码元“1”。
双相码:双相码要求每一位中都要有一个电平转换。因而这种代码的最大优点是自定时,同时双相码也有检测错误的功能,如果某一位中间缺少了电平翻转,则被认为是违例代码。
非归零电平编码(Non-Return to Zero Level,NRZ-L):不使用0电平陆升,用正电平表示“0”,负电平表示“1”。
非归零反相编码(Non-Return to Zero Inverted,NRZ-I):当“1”出现时电平翻转,当“0”出现时电平不翻转。这种代码也叫差分码。
曼彻斯特码(Manchester):高电平到低电平的转换边表示0,低电平到高电平的转换边表示1,位中间的电平转换边既表示数据代码,也作定时信号使用。曼彻斯特编码用在以太网中。
差分曼彻斯特码(Differential Manchester):也叫做相位编码(兆伏PE);常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,“0”表示位的开头有跳变,“1”表示位的开头没有跳变,位中间的跳变既作时钟信号,又作数据信号。
多电平编码:码元可取多个电平之一,每个码元可代表几个二进制位。
4B/5B编码:百兆位快速以太网的光纤分布式数据接口(FDDI,Fiber Distributed Data Interface)中采用的信息编码方案。这种编码的特点是将欲发送的数据流每4bit作为一个组,每四位二进制代码由5位编码表示,这5位编码称为编码组(code group),并且由NRZI方式传输。