负数压缩存储
❶ 电脑基本知识
计算机基础知识(看书2.1-2.5)P8--P29,做课后练习
把书上相关内容划线,回家背诵,记牢!
计算机的产生与发展
计算机的产生是20世纪最重要的科学技术大事件之一。1946年美国宾夕法尼亚大学经过几年的艰苦努力,研制出世界上第一台电子计算机--埃尼阿克(ENIAC)。
一、 计算机的发展史:
根据计算机所采用的物理器件不同,可分为四个阶段。
第一代:电子管计算机,开始于1946年,结构上以CPU为中心,使用机器语言,速度慢、存储量小,主要用于数值计算。
第二代:晶体管计算机,开始于1958年,结构上以存储器为中心,使用高级语言应用范围扩大到数据处理和工业控制。
第三代:中小规模集成电路计算机,开始于1964年,结构上仍以存储器为中心,增加了多种外部设备,软件得到一定发展,计算机处理图像、文字和资料功能加强。
第四代:大、超大规模集成电路计算机,开始于1971年,应用更加广泛,出现了微型计算机。
计算机硬件发展的同时,软件始终伴随其步伐迅猛发展,就计算机的编程语言而言,也划分为三代。
第一代:机器语言。每条指令用二进制编码,效率很低。
第二代:汇编语言。用符号编程,和具体机器指令有关,效率不高。
第三代:高级语言:如FORTRAN、COBOL、BASIC、PASCAL等都属于高级语言。
二、我国计算机的发展
我国从1956年开始电子计算机科研和教学工作。
1983年12月研制成功每秒运行1亿次的"银河"巨型计算机;
1992年11月研制成功每秒运行10亿次的"银河Ⅱ"巨型计算机;
1997年研制成功每秒运行130亿次的"银河Ⅲ"巨型计算机。
三、计算机的发展趋势
计算机的发展向微型化和巨型化、多媒体化和网络化方向发展。
计算机的基本概念
计算机内所有的信息都是以二进制的形式表示的,单位是位。
位:计算机只认识由0或1组成的二进制数,二进制数中的每个0或1就是信息的最小单位,称为"位"(bit)。
字节:是衡量计算机存贮容量的单位。一个8位的二进制数据单元称一个字节(byte)。在计算机内部,一个字节可以表示一个数据,也可以表示一个英文字母或其他特殊字符,二个字节可以表示一个汉字。
字:在计算机中,作为一个整体单元进行存贮和处理的一组二进制数。一台计算机,字的二进制数的位数是固定的。
字长:一个字中包含二进制数位数的多少称为字长。字长是标志计算机精度的一项技术指标。
存贮器编址:为了便于对计算机内的数据进行有效的管理和存贮,需要对内存单元编号,即给每个存贮单元一个地址。每个存贮单元存放一个字节的数据。 如果需要对某一个存贮单元进行存贮,必须先知道该单元的地址,然后才能 对该单元进行信息的存取。
注意:存贮单元的地址和存贮单元中的内容是不同。
指令:指挥计算机进行基本操作的命令。
指令系统:一种计算机所能执行的全部指令的集合。
程序:按一定处理步骤编排的,能完成一定处理能力的指令序列。
计算机系统
计算机系统是由硬件系统和软件系统所组成的。
一、计算机的硬件系统
硬件系统由输入设备、输出设备、存储器、运算器和控制器组成。
其中运算器和控制器结合在一起,称为中央处理器(CPU)
CPU(即运算器和控制器)和存储器合称为主机。
输入设备:常见有键盘、鼠标、扫描仪等
输出设备:常见有显示器、打印机和绘图仪等;
中央处理器:又称CPU,它包括运算器和控制器。是计算机的核心部分。
我们平时所说的486、586、奔腾Ⅲ、奔腾Ⅳ指的是CPU的档次。
运算器:可以进行算术运算和逻辑运算;
控制器:是计算机的指挥系统,它的操作过程是取指令--分析指令,循环执行。
存储器:具有记忆功能的物理器件,用于存储信息。分为内存和外存。
内存:是半导体存储器,分为只读存储器(ROM)和随机存储器(RAM)。
ROM只可读出,不能写入,断电后内容还在;
RAM可随意写入读出,但断电后内容不存在。
外存:磁性存储器(软盘和硬盘);光电存储器(光盘),可以作为永久性存储器。
存储器的两个重要指标:存取速度和存储容量。内存的存取速度最快,软盘最慢。存储容量是存储的信息量,它用字节(Byte)作为基本单位,1个字节用8位二进制数表示,1KB=1024B,1MB=1024KB,1GB=1024MB。
二、计算机的软件系统
计算机软件系统分为系统软件和应用软件两大类。
系统软件:为了使用和管理计算机的软件;主要操作系统软件有Windows95/98/2000/NT, DOS, UCDOS,MS-DOS,Unix,,OS/2,Linux等。其中,WINDOWS是多任务可视化图形界面,DOS是字符命令形式的单任务操作系统。
应用软件:为了某个应用目的而编写的软件,主要有辅助教学软件,辅助设计软件、文字处理软件、工具软件以及其它的应用软件。
三、计算机的工作原理:
到目前为止,电子计算机的工作原理均采用冯·诺依曼的存储程序,并自动完成程序的设计思想.其工作过程如下图所示:
需要注意的是:程序中的数据,指令都采用数字化编码方式,保存在存储器中;程序中的指令必须是属于这台机器的指令系统.
四、计算机病毒
计算机病毒是一种程序,是人为设计的具有破坏性的程序.它往往使计算机不能正常工作.计算机病毒具有破坏性,传播性,可激发性,潜伏性,隐蔽性等特点.由于计算机病毒危害极大,需要注意隔离计算机病毒的来源,经常用杀病毒软件检查计算机系统和存储器.
计算机中有关数,编码的基本常识
(一)1.计算机是智能化的电器设备
计算机就其本身来说是一个电器设备,为了能够快速存储,处理,传递信息,其内部采用了大量的电子元件,在这些电子元件中,电路的通和断,电压高低,这两种状态最容易实现,也最稳定,也最容易实现对电路本身的控制.我们将计算机所能表示这样的状态,用0,1来表示,即用二进制数表示计算机内部的所有运算和操作.
2.二进制数的运算法则
二进制数运算非常简单,计算机很容易实现,其主要法则是:
0+0=0 0+1=1 1+0=1 1十1=10; 0 x 0=0 0 xl=0 1x 0= 0 1xl=1
由于运算简单,电器元件容易实现,所以计算机内部都用二进制编码进行数据的传送,计算.
3.十进制与二进制,八进制,十六进制数之间的相互转换
(1)数的进制与基数.
计数的进制不同,则它们的基数也不相同,如表1-l所示.
进制
基数
十进制数
典型示例(转换)
二进制
0,1
10,7,23
1010,111,10111
三进制
0,1,2
10,7,23
101,21,212
四进制
0,1,2,3
10,7,23
22,13,113
八进制
0,1,2,3,4,5,6,7
10,63,126
12,77,176
十进制
0,1,2,3,4,5,6,7,8,9
十六进制
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
10,63,254
A,3F,15E
(2)数的权
不同进制的数,基数不同,其每位上所代表的值的大小也不相同,我们称之为"权"
①十进制数,逢十进一.如,(219)10=2x102+1x101+9x100
②二进制数,逢二进一.如,(11010)2=lx24+lx23+0x22+lx21+0x20=26
③八进制数,逢八进一.如,(273)8= 2x82+7x81+3x80=187
④十六进制数,逢十六进一.如,(27B)16=2x162+7x161+11x160=635
从以上的计算中,可以看到,进制不同,基数不同,每位上权值大小也不相同,数值大小也不相同.
(3)十进制数转换成任意进制数
将十进制数转换成任意进制数的基本方法是:将十进制数除以所定的进制数反向取余.
例如:
①将39用二进制数表示,用如下的短除法,求余数,并反向取余.如果转换成二进制还可以用右边的2的N次幂表示.
短除法 39==>(100111)2
②将245用八进制数表示,我们可以用如下的短除法,求余数,并反向取余.
想一想,为什么要反向取余.对于十进制小数要转换成其他进制的数,则是不断将小数部分乘以进制数取整,作为转换后的小数部分,直到为零或精确到小数点后几位.如: (0.35)10≈(0.01011)2 (0.125)10=(0.001)2
(4)任意进制的数转换成十进制数
将任意进制数转换成十进制数的基本方法是按权展开,见(2)数的权内容.
(二)ASCII码 ( American Standard Code for Information Interchange )
美国的标准信息交换代码
将每个字符用7位的二进制数来表示,共有128种状态
大小字母,0…9,其它符号,控制符
' 0 ' ―― 48 ' A ' ―― 65 ' a ' ―― 97
(三)汉字信息编码
汉字输入码
汉字输入方法大体可分为:区位码(数字码),音码,形码,音形码.
· 区位码:优点是无重码或重码率低,缺点是难于记忆;
· 音码:优点是大多数人都易于掌握,但同音字多,重码率高,影响输入的速度;
· 形码:根据汉字的字型进行编码,编码的规则较多,难于记忆,必须经过训练才能较好地掌握;重码率低
· 音形码:将音码和形码结合起来,输入汉字,减少重码率,提高汉字输入速度;
2.汉字交换码
汉字交换码是指不同的具有汉字处理功能的计算机系统之间在交换汉字信息时所使用的代码标准.自国家标准GB2312-80公布以来,我国一直延用该标准所规定的国标码作为统一的汉字信息交换码.
GB2312-80标准包括了6763个汉字,按其使用频度分为一级汉字3755个和二级汉字3008个.一级汉字按拼音排序,二级汉字按部首排序.此外,该标准还包括标点符号,数种西文字母,图形,数码等符号682个.
区位码的区码和位码均采用从01到94的十进制,国标码采用十六进制的21H到73H(数字后加H表示其为十六进制数).区位码和国标码的换算关系是:区码和位码分别加上十进制数32.如"国"字在表中的25行90列,其区位码为2590,国标码是397AH.
* 由于GB2312-80是80年代制定的标准,在实际应用时常常感到不够,所以,建议处理文字信息的产品采用新颁布的GB18030信息交换用汉字编码字符集,这个标准繁,简字均处同一平台,可解决两岸三地间GB码与BIG5码间的字码转换不便的问题.
3.字形存储码
字形存储码是指供计算机输出汉字(显示或打印)用的二进制信息,也称字模.通常,采用的是数字化点阵字模.
一般的点阵规模有16×16,24×24,64×64等,每一个点在存储器中用一个二进制位(bit)存储.例如,在16×16的点阵中,需8×32 bit 的存储空间,每8 bit为1字节,所以,需32字节的存储空间.在相同点阵中,不管其笔划繁简,每个汉字所占的字节数相等.
为了节省存储空间,普遍采用了字形数据压缩技术.所谓的矢量汉字是指用矢量方法将汉字点阵字模进行压缩后得到的汉字字形的数字化信息.
(四)其它信息的数字化
图像信息的数字化
一幅图像可以看作是由一个个像素点构成,图像的信息化,就是对每个像素用若干个二进制数码进行编码.图像信息化后,往往还要进行压缩.
图像文件的后缀名有:bmp,gif,jpg,pdf等;
声音信息的数字化
自然界的声音是一种连续变化的模拟信息,可以采用A/D转换器对声音信息进行数字化.
声音文件的后缀名有:wav,mp3,mid等;
视频信息的数字化
视频信息可以看成连续变换的多幅图像构成,播放视频信息,每秒需传输和处理25幅以上的图像.视频信息数字化后的存储量相当大,所以需要进行压缩处理.
视频文件后缀名有:avi,mpg等;
机器数与真值
数有正,负两种,在计算机中数的符号是用数码表示的.一般情况下,用0表示正数,用1表示负数.通常符号位放在数的最高位.
机器数:连同符号位在一起作为一个数,称为机器数.
真值数:一个数的数值部分称为真值数.
如:x1=+1011011 x2=-1011011, 则X1的机器数是01011011,真值数是+1011011,X2的机器数是11011011,真值数是-1011011.
(一)数的定点表示和浮点表示
(1) 定点小数格式
任何一个M位的小数可以表示成:
N=Ns . N-1N-2…N-m (其中Ns 是符号位,其值表示的范围|N|<=1-2-m)
(2) 定点整数格式
任何一个N位带符号的整数都可表示为:
N=Ns Nn-1Nn-2…N0 (其中Ns 是符号位,其值表示的范围|N|<=2n-1)
(3) 数的浮点表示
浮点数是指小数点在数据中的位置可以左右移动的数.一个数N要用浮点表示可以写成:N=M·RE 其中M表示浮点数的尾数,E表示浮点数的指数或称为阶码,R指的是在这个指数下的基数.浮点数通常表示成如下格式:
Ms
E
M
1位 m位 n位
M:浮点数的尾数,用定点小数表示,小数点在尾数最高位之前,是默认的.尾数用于表示浮点数的有效位,其位数N的大小反映了此浮点数的精度.
E:浮点数的阶码,用定点整数表示.
Ms:浮点数的符号位,也就是尾数的符号位,一般放在整个浮点数的最高位.
(4)浮点数的规格化
当尾数用二进制数表示时,浮点规格化数定义尾数S应满足下面关系:
(I)对于正数,S应大于等于1/2,小于1,用二进制数表示为:
S=0.1******…(其中*为0或1)
(II)对于负数,如果尾数用原码表示,S应小于等于-1/2,大于-1,表示为:
S=1.1******…(其中*为0或1)
(III)机器零:当一个浮点数的尾数为0,不论其阶码为何值;或阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零,即把阶码尾数全变为0,称它为机器0.
(二)二进制数值数据的编码方法
最常用的编码方法有原码表示法,补码表示法和反码表示法三种.
1,原码表示法
用机器数的最高(最左)一位代表符号,其余各位给出数值的绝对值.
[X]原=符号位+|X|(0代表正号,1代表负号)
真值零的原码表示法,有正零和负零两种表示:
[+0]原=00000 [-0]原=10000
2,补码表示法
如果X为正数,则:[X]补=[X]原
如果X为负数,则:[X]补=(把[X]原 除符号位外,其余各位全变反(0变1,1变0),再在最末位加1 )
[+0]补=[-0]补=0000
同理有:如果X为负数,则:[X]原=(把[X]补 除符号位外,其余各位全变反(0变1,1变0),再在最末位加1 )
3,反码表示法
如果X为正数,则:[X]反=[X]原
如果X为负数,则:[X]反=(把[X]原 除符号位外,其余各位全变反(0变1,1变0))
[+0]反=00000 [-0]反=11111
可见,如果真值X=0,则[X]补 有唯一的编码,[X]原 和 [X]反 都有两个不同的编码.
2 39
2 19 ……1
2 9 ……1
2 4 ……1
2 2 ……0
2 1 ……0
2 0 ……1
2的N次幂表示:(39)10=(100111)2= lx25+0x24+0x23+1x22+lx21+1x20
16×16点表示
❷ 我数据库的日志大小怎么是负数
1、用BACKUP LOG database WITH NO_LOG清除日志
把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,是否能删除主数据库事务日志文件
步骤如下:(1)、分离数据库企业管理器--数据库--右击你要删除日志的数据库--所有
任务--分离数据库
(2)、然后删除日志文件
(3)、然后再附加数据库
企业管理器--数据库--右击数据库--所有任务--附加数据库这时候只附加。mdf就可以了。
3、压缩SQL数据库及日志的详细方法
SQL Server 2000基础教程——压缩数据库数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:
1、用Enterprise Manager 压缩数据库
在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项,就会出现如图6-10 所示的对话框。可以在图6-10 所示的对话框中选择数据库的压缩方式,也可以选择使用压缩计划或压缩单个文件单击图6-10 中的“Files”按钮,会出现如图6-11 所示的压缩数据库文件对话框,可以针对每个数据库文件进行不同的压缩设置。
单击图6-10 中的“Change” 按钮,会出现如图6-12 所示的压缩计划编辑对话框,可以指定压缩计划的执行方式。单击图6-12 中的“Change” 按钮,会出现如图6-13 所示的循环工作计划编辑对话框,可以编辑计划执行的周期或时间点。设置完成后单击“OK” 按钮就开始压缩数据库,在压缩结束后会显示一个压缩情况信息框。
2、用Transact-SQL 命令压缩数据库
可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。
(1) DBCC SHRINKDATABASE
DBCC SHRINKDATABASE 命令语法如下:
DBCC SHRINKDATABASE (database_name [, target_percent]
[, {NOTRUNCATE | TRUNCATEONLY}] )
各参数说明如下:
·target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
·NOTRUECATE
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统
。如果不选择此选项,则剩余的空间返还给操作系统。
·TRUNCATEONLY
将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。例6-14: 压缩数据库mytest 的未使用空间为数据库大小的20%
。
dbcc shrinkdatabase (mytest, 20)
运行结果如下:
DBCC execution completed. If DBCC printed error
messages, contact your system administrator.
(2) DBCC SHRINKFILE
DBCC SHRINKFILE 命令压缩当前数据库中的文件。其语法如下:
DBCC SHRINKFILE ( {file_name | file_id }
{ [, target_size] |
[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
各参数说明如下:
·file_id
指定要压缩的文件的鉴别号(Identification number, 即ID)
。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述
的Sp_helpdb 系统存储过程来得到。
·target_size
指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。
·EMPTYFILE
指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE
命令中的含义相同。 例6-15: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)
企业管理器里面的方法:
1、打开企业管理器
2、打开要处理的数据库
3、点击最上面菜单>工具>SQL查询分析器,打开SQL查询分析器
4、在输入窗口里面输入:
Code:
DUMP TRANSACTION [数据库名] WITH NO_LOG
BACKUP LOG [数据库名] WITH NO_LOG
DBCC SHRINKDATABASE([数据库名])
点击绿色的小三角(或按F5)执行查询,等状态栏提示处理完成
即可!
程序里面的方法:
压缩数据库日志
--1.清空日志
exec('DUMP TRANSACTION ['+@dbname+'] WITH NO_LOG')
--2.截断事务日志:
exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG')
--3.收缩数据库文件(如果不压缩,数据库的文件不会减小
exec('DBCC SHRINKDATABASE(['+@dbname+'])')
4、减小日志的方法:
一、用如下步做了:
1、DUMPTRANSACTION库名WITHno_log
2、dbcc shrinkfile(logfilename)
3、收缩数据库
4、设定自动收缩。
二、分离数据库,删除日志文件,再附加,OK!右击数据库--所有任务--分离or 附加
三、1、backup log库名WITHno_log,2、dbcc shrinkfile(logfilename),3、收缩数据库
4、设定自动收缩。
❸ 使用Ghost后硬盘空间丢失
用tuneup 2006进行磁盘清理、修理注册表
搜索C:盘中大于500M的文件
多方面试一试吧!
以后想删除pagefile,可以在我的电脑属性里,设置C:的叶面文件为0,在其他盘上设置pagefile,之后再备份;麻烦了点,但很可靠!
❹ 负利率对于商业银行的经营活动都有哪些挑战
负利率实在不是一件小事,因为整个现代金融体系的建立都是建立在利率为正的假设上的。正如在另一个回答里说的,丹麦现在处于负利率的情况,不仅存款利率理论上已经是负的了,贷款利率都出现了负值,简单说说我的看法吧:
1) 现在我们都是在讨论的名义利率,因为欧洲目前很多国家面临通缩的问题,所以实际利率并不一定是负数。
2) 如果银行的存款利率为负数,那为什么还有人把钱存到银行? 好吧,首先,在北欧这些福利国家,本来储蓄率就不高,这个负利率倒没有对银行的存款规模产生那么大的影响。另外很多人将现金以北欧货币存在北欧银行里的目的也是为了避险,对于利率没有那么敏感。
3)要考虑到一个问题是,在现代欧洲社会(尤其是北欧),是一个“无现金”的社会,也就是说几乎没有什么地方是需要用到现金消费的,使用信用卡或者银行卡要远比现金方便得多。甚至如果一个人一直在使用现金消费,会引起店员和警察的怀疑。那么从这个角度来说,负利率可以看成是客户为了获得进入现代支付系统的便利而付出的成本。。在这个角度上来说,利率已经不再是利率了,而类似于大宗商品里的存储成本。(今天我看有市场评论瑞士发行10年负利率债券的时候也有人在说,某些避险货币的市场已经跟大宗商品很像了)
4)如果信用质量很好的话,现在确实有可能从银行贷到利率为负的贷款。但是只要银行的融资成本低于贷款价格,银行还是有钱赚的。
5)负利率摧毁了银行在过去三十年来建立的各种利率模型,因为几乎所有的利率模型都在假设利率会一直是个正数(如Black Model)。甚至现在翻开一些教科书,都能看到对一些short rate model (比如Vasicek)的批评都是可能出现负利率。。。所以包括我在内的各种quant都在忙着更新模型,重建系统,做各种测试。
6)负利率对利率衍生产品市场有非常大的影响,包括之前提的利率模型部分,也包括产品设计。
❺ 高分请教!存储器方面
第二章 企业信息的储存和处理
信息时代的核心无疑是信息技术,而信息技术的核心则在于信息的处理与存储。
2.1 数据表示
2.1.1 信息、数字和字符的表示
1.信息表示
存储数据的逻辑部件有两种状态,即高电位和低电位,分别与"1"和"0"相对应。在计算机中,如果一种电位状态表示一个信息单元,那么一位二进制数可以表示两个信息单元。若使用2位二进制数,则可以表示4个信息单元;使用3位二进制数,可以表示8个信息单元。二进制数的位数和可以表示的信息单元之间存在着幂次数的关系。也就是说,当用n位二进制数时,可表示的不同信息单元个数为2 个。
反之,如果有18个信息单元需要表示,那么应该用几位二进制数呢?若用4位二进制数,可表示的信息单元为16个;若用5位二进制数,可表示的信息为32个单元。所以要表示18个信息单元的数据,至少需要用5位二进制数。
计算机在存储数据时,常常把8位二进制数看作一个存储单元,或称为一个字节。用2 来计算存储容量,把 (即1024)个存储单元称为1K字节;把 K(即1024 K)个存储单元称为1M字节;把 M(即1024M)个存储单元称为1G字节。
2.数字表示
通过二进制格式来存储十进制数字,也即存储数值型数据。表示一个数值型数据,需要解决三个问题。
首先,要确定数的长度。在数学中,数的长度一般指它用十进制表示时的位数,例如258为3位数、124578为6位数等。在计算机中,数的长度按二进制位数来计算。但由于计算机的存储容量常以字节为计量单位,所以数据长度也常按字节计算。需要指出的是,在数学中数的长度参差不一,有多少位就写多少位。在计算机中,如果数据的长度也随数而异,长短不齐,无论存储或处理都很不便。所以在同一计算机中,数据的长度常常是统一的,不足的部分用"0" 填充。
其次,数有正负之分。在计算机中,总是用最高位的二进制数表示数的符号,并约定以"0"代表正数,以"1"代表负数,称为数符;其余仍表示数值。通常,把在机器内存放的正负号数码化的数称为机器数,把机器外部由正负号表示的数称为真值数。若一个数占8位,真值数为(-0101100)B,其机器数为10101100,存放在机器中的见图2.1.1
图2.1.1 存放在机器中的数
机器数表示的范围受到字长和数据的类型的限制。字长和数据类型确定了,机器数能表示的范围也定了。例如,若表示一个整数,字长为8位,最大值01111111,最高位为符号位,因此此数的最大值为127。若数值超出127,就要"溢出"。
再者是小数点的表示。在计算机中表示数值型数据,小数点的位置总是隐含的,以便节省存储空间。隐含的小数点位置可以是固定的,也可以是可变的。前者称为定点数,后者称为浮点数。
1) 定点数表示方法:
定点整数,即小数点位置约定在最低数值位的后面,用于表示整数。
整数分为带符号和不带符号的两类。对于为带符号的整数,符号位放在最高位。整数表示的数是精确的,但数的范围是有限的。根据存放的字长,它们可以用8、16、32位等表示,各自表示数的范围见表2.1.1。
表2.1.1 不同位数和数的表示范围
二进制位数 无符号整数的表示范围 有符号整数的表示范围
8
16
32
如果把有符号整数的长度扩充为4字节,则整数表示范围可从±32767扩大到±2147483647≈0.21×1010,即21亿多。但每个数占用的存储空间也增加了一倍。
定点小数,即小数点位置约定在最高数值位的前面,用于表示小于1的纯小数。
如用定点数表示十进制纯小数-0.6876,则为-0.101100000000011…。数字-0.6876的二进制数为无限小数,故存储时只能截取前15位,第16位开始略去。
若2个字节长度用来表示定点小数,则最低位的权值为2-15(在10-4 ~10-5之间),即至多准确到小数点后的第4至第5位(按十进制计算)。这样的范围和精度,即使在一般应用中也难以满足需要。为了表示较大或较小的数,用浮点数表示。
2)浮点数表示方法:
在科学计算中,为了能表示特大或特小的数,采用"浮点数"或称"科学表示法"表示实数,"浮点数"由两部分组成,即尾数和阶码。例如, ,则0.23456为尾数,5是阶码。
在浮点表示方法中,小数点的位置是浮动的,阶码可取不同的数值。为了便于计算机中小数点的表示,规定将浮点数写成规格化的形式,即尾数的绝对值大于等于0.1并且小于1,从而唯一规定了小数点的位置。尾数的长度将影响数的精度,其符号将决定数的符号。浮点数的阶码相当于数学中的指数,其大小将决定数的表示范围。
同样,任意二进制规格化浮点数的表示形式为:
其中 是尾数,前面的" "表示数符; 是阶码,前面的" "表示阶符。它在计算机内的存储形式如图2.1.2所示。
阶符 阶码 数符 尾数
图2.1.2 浮点数的存储格式
例如,设尾数为8位,阶码为6位;则二进制数 ,浮点数的存放形式见图2.1.3。
图2.1.3 的存放
3)原码、反码和补码表示法
"原码"编码方式
以上介绍的定点和浮点表示,都是用数据的第一位表示数的符号,用其后的各位表示数(包括尾数与阶码)的绝对值。这种方法简明易懂,但因运算器既要能作加法,又要能作减法,操作数中既有正数,又有负数,所以原码运算时常伴随许多判断。例如两数相加,若符号不同,实际要做减法;两数相减,若符号相异,实际要做加法,等等。其结果是,增加运算器的复杂性,并增加运算的时间。
"补码"和"反码"编码方式
怎样处理负数?由此提出了"补码"、"反码"等编码方法.补码运算的主要优点,是通过对负数的适当处理,把减法转化为加法。不论求和求差,也不论操作数为正为负,运算时一律只做加法,从而大大简化加减运算。补码运算通常通过反码运算实现。所以对算术运算的完整讨论不仅应包括数值,还应该包括码制(原、反、补码等)。
3.字符表示:
字符编码是指用一系列的二进制数来表示非数值型数据(如字符、标点符号等)的方法,简称为编码。表示26个英文字母,用5个二进制位已足够表示26个字符了。但是,每个英文字母有大小写之分,还有大量的标点符号和其他一些特殊符号(如$、#、@、&、+等)。把所有的符号计算在一起,总共有95个不同的字符需要表示。使用最广泛的三种编码方式是ASCII、ANSI和EBCDIC码,第四种编码方式Unicode码正在发展中。
1) ASCII(American Standard Code for Information Interchange,美国信息交换标准码)是使用最广的。使用ASCII码编码的文件称为ASCII文件。标准的ASCII编码使用7个二进制数来表示128个符号,包括英文大小写字母、标点符号、数字和特殊控制符。
2) ANSI(American National Institute,美国国家标准协会)编码使用8位二进制数来表示每个字符。8个二进制数能表示256个信息单元,因此,该编码可以对256个字符、符号等进行编码。ANSI开始的128个字符的编码和ASCII定义的一样,只是在最高位上加个0。例如,在ASCII编码中,字符"A"表示为1000001,而在ANSI编码中,则用01000001表示。除了表示ASCII编码中的128个字符外,ANSI编码还有128个符号可以表示,如版权符、英镑符、外国语言字符等。
3)EBCDIC(Extended Binary-Coded Decimal Interchange Code,扩展二、十进制交换码)是IBM公司为它的大型机开发的8位字符编码。值得注意的是,在EBCDIC编码开始的128个字符中,EBCDIC的编码和ASCII或ANSI的编码并不相同。
总的来说,标准的ASCII编码定义的128个字符,对于表示数字、字符、标点符号和特殊字符来说是足够了。ANSI编码表示了所有的ASCII编码所表示的128个字符,并且还表示了欧洲语言中的字符。EBCDIC编码表示了标准的字符和控制代码。但是,没有一种编码方案支持可选的字符集,也不支持非字母组合起来的语言,如汉语、日语等。
4)Unicode编码是一组16位编码,可以表示超过65000个不同的信息单元。从原理上讲,Unicode可以表示现在正在使用的、或者已经不再使用的任何语言中的字符。对于国际商业和通信来说,这种编码方式是非常有用的,因为在一个文件中可能需要包含有汉语、日语、英语等不同的语种。并且,Unicode编码还适用于软件的本地化,即可以针对特定的国家修改软件。另外,使用Unicode编码,软件开发人员可以修改屏幕的提示、菜单和错误信息提示等,来适用于不同国家的语言文字。
2.1.2图像数据和视频数据的表示
两种非常不同的图形编码方式,即位图编码和矢量编码方式。两种编码方式的不同,影响到图像的质量、存储图像的空间大小、图像传送的时间和修改图像的难易程度。视频是图像数据的一种,由若干有联系的图像数据连续播放而形成。人们一般讲的视频信号为电视信号,是模拟量;而计算机视频信号则是数字量。
1.位图图像:
位图图像是以屏幕上的像素点位置来存储图像的。 最简单的位图图像是单色图像。单色图像只有黑白两种颜色,如果某像素点上对应的图像单元为黑色,则在计算机中用0来表示;如果对应的是白色,则在计算机中用1来表示。
对于单色图像,用来表示满屏图像的图像单元数正好与屏幕的像素数相等。如果水平分辨率为640,垂直分辨率为480,将屏幕的水平分辨率与垂直分辨率相乘: 640×480=307200,则屏幕的像素数为307200个,因为单色图像使用一位二进制数来表示一个像素,所以存储一幅满屏的位图图像的字节数也就能计算出来: 307200÷8=38400,因此分辨率为640×480的满屏单色图像需要38400个字节来存储,这个存储空间不算大。但是单色图像看起来不太真实,很少使用。
灰度图像要比单色图像看起来更真实些。灰度图像用灰色按比例显示图像,使用的灰度级越多,图像看起来越真实。 通常计算机用256级灰度来显示图像。在256级灰度图像中,每个像素可以是白色、黑色或灰度中256级中的任何一个,也就是说,每个像素有256种信息表示的可能性。所以在灰度图像中,存储一个像素的图像需要256个信息单元,即需要一个字节的存储空间。因此,一幅分辨率为640×480、满屏的灰度图像需要307200个字节的存储空间。
计算机可以使用16、256或1,670万种颜色来显示彩色图像,用户将会得到更为真实的图像。
16色的图像中,每个像素可以有16种颜色。那么为了表示16个不同的信息单元,每个像素需要4位二进制数来存储信息。因此,一幅满屏的16色位图图像需要的存储容量为153600个字节。
256色的位图图像,每个像素可以有256种颜色。为了表示256个不同的信息单元,每个像素需要8位二进制数来存储信息,即一个字节。因此,一幅满屏的256色位图图像需要的存储容量为307200个字节,是16色的两倍,与256级灰度图像相同。
1,670万色的位图图像称为24位图像或真彩色图像。其每个像素可以有1.670万种颜色。为了表示这1,670万种不同的信息单元,每个像素需要24位二进制数来存储信息,即3个字节。显然,一幅满屏的真彩色图像需要的存储容量更大。
包含图像的文件都很大,需要很大容量的存储器来存储,并且传输和下载的时间也很长。例如,从因特网上下载一幅分辨率为640×480的256色图像至少需要1分钟;一幅16色的图像需要一半的时间;而一幅真彩色图像则会需要更多的时间。
有两种技术可以用来减少图像的存储空间和传输时间,即数据压缩技术和图像抖动技术。数据压缩技术随后介绍,而图像抖动技术主要是采用减少图像中的颜色数来减小文件存储容量的。抖动技术是根据人眼对颜色和阴影的分辨率,通过由两个或多个颜色组成的模式产生附加的颜色和阴影来实现。例如,256色图像上的一片琥珀色区域,可以通过抖动技术转换为16色图像上的黄红色小点模式。在因特网的Web页面上,抖动技术是用来减少图像存储容量的常用技术。
位图图像常用来表现现实图像,其适合于表现比较细致、层次和色彩比较丰富、包含大量细节的图像。例如扫描的图像,摄像机、数字照相机拍摄的图像,戓帧捕捉设备获得的数字化帧画面。经常使用的位图图像文件扩展名有:.bmp、.pcx、.tif、.jpg和.gif等。
由像素矩阵组成的位图图像可以修改戓编辑单个像素,即可以使用位图软件(也称照片编辑软件戓绘画软件)来修改位图文件。可用来修改戓编辑位图图像的软件如:Microsoft Paint、 PC Paintbrush、Adobe Photoshop、Micrografx Picture Publisher等,这些软件能够将图片的局部区域放大,而后进行修改。
2.矢量图像
矢量图像是由一组存储在计算机中,描述点、线、面等大小形状及其位置、维数的指令组成,而不是真正的图像。它是通过读取这些指令并将其转换为屏幕上所显示的形状和颜色的方式来显示图像的,矢量图像看起来没有位图图像真实。用来生成矢量图像的软件通常称为绘图软件,如常用的有:Micrographx Designer和CorelDRAW。
矢量图像的优缺点
优点:
存储空间比位图图像小。矢量图像的存储空间依赖于图像的复杂性,每条指令都需要存储空间,所以图像中的线条、图形、填充模式越多,需要的存储空间越大。但总的来说,由于矢量图像存储的是指令,要比位图图像文件小得多。
矢量图像可以分别控制处理图中的各个部分,即把图像的一部分当作一个单独的对象,单独加以拉伸、缩小、变形、移动和删除,而整体图像不失真。不同的物体还可以在屏幕上重叠并保持各自的特性,必要时仍可分开。所以,矢量图像主要用于线性图画、工程制图及美术字等。经常使用的矢量图像文件扩展名有:.wmf、.dxf、.mgx和.cgm等。
缺点:
处理起来比较复杂,用矢量图格式表示一复杂图形需花费程序员和计算机的大量时间,比较费时,所以通常先用矢量图形创建复杂的图,再将其转换为位图图像来进行处理。
位图图像和矢量图像的比较:
显示位图图像要比显示矢量图像快,但位图图像所要求的存储空间大,因为它要指明屏幕上每一个像素的信息。总之,矢量图像的关键技术是图形的制作和再现,而位图图像的关键技术则是图像的扫描、编辑、无失真压缩、快速解压和色彩一致性再现等。
3.数字视频:
视频信息实际上是由许多幅单个画面所构成的。电影、电视通过快速播放每帧画面,再加上人眼的视觉滞留效应便产生了连续运动的效果。视频信号的数字化是指在一定时间内以一定的速度对单帧视频信号进行捕获、处理以生成数字信息的过程。
与模拟视频相比,数字视频的优点为:
1)数字视频可以无失真地进行无限次拷贝,而模拟视频信息每转录一次,就会有一次误差积累,产生信息失真。
2)可以用许多新方法对数字视频进行创造性的编辑,如字幕、电视特技等。
3)使用数字视频可以用较少的时间和费用创作出用于培训教育的交互节目, 可以真正实现将视频融进计算机系统中以及可以实现用计算机播放电影节目等。
数字视频的缺点为:
因为数字视频是由一系列的帧组成,每个帧是一幅静止的图像,并且图像也使用位图文件形式表示。通常,视频每秒钟需要显示30帧,所以数字视频需要巨大的存储容量。
例如:一幅全屏的、分辨率为640×480的256色图像需要有307200字节的存储容量。那么一秒钟数字视频需要的存储空间是30乘上这个数,即9216000个字节,约为9兆。两小时的电影需要66 355 200 000个字节,超过66G字节。这样大概只有使用超级计算机才能播放。所以在存储和传输数字视频过程中必须使用压缩编码。
2.1.3 声音数据的表示
计算机可以记录、存储和播放声音。在计算机中声音可分成数字音频文件和MIDI文件。
1.数字音频
复杂的声波由许许多多具有不同振幅和频率的正弦波组成,这些连续的模拟量不能由计算机直接处理,必须将其数字化才能被计算机存储和处理
计算机获取声音信息的过程就是声音信号的数字化处理过程。经过数字化处理之后的数字声音信息能够像文字和图像信息一样被计算机存储和处理。模拟声音信号转化为数字音频信号的大致过程:
用数字方式记录声音,首先需对声波进行采样。声波采样前后波形如图2.1.4所示(其中横轴表示时间,纵轴表示振幅):
图2.1.4 声波采样前后波形
采样频率指的是在采样声音的过程中,每秒钟对声音测量的次数。采样频率以Hz为单位。如果提高采样频率,单位时间内所得到的振幅值就多,也即采样频率越高,对原声音曲线的模拟就越精确。然后再把足够多的振幅值以同样的采样频率转换为电压值去驱动扬声器,则可听到和原波形一样的声音。这种技术称为脉冲编码调制技术(PCM)。
声音文件
存储在计算机上的声音文件的扩展名为:.wav,.mod,.au和.voc。要记录和播放声音文件,需要使用声音软件,声音软件通常都要使用声卡。
2.MIDI文件
乐器数字接口--MIDI(Musical Instrument Digital Interface),是电子乐器与计算机之间的连接界面和信息交流方式。MIDI格式的文件扩展名为.mid,通常把MIDI格式的文件简称为"MIDI文件"。
MIDI是数字音乐国际标准。数字式电子乐器的出现,为计算机处理音乐创造了极为有利的条件。MIDI声音与数字化波形声音完全不同,它不是对声波进行采样、量化和编码。它实际上是一串时序命令,用于纪录电子乐器键盘弹奏的信息,包括键、力度、时值长短等。这些信息称之为MIDI消息,是乐谱的一种数字式描述。当需要播放时,只需从相应的MIDI文件中读出MIDI消息,生成所需要的乐器声音波形,经放大后由扬声器输出。
MIDI文件的存储容量较数字音频文件小得多。如3分钟的MIDI音乐仅仅需要10KB的存储空间,而3分钟的数字音频信号音乐需要15MB的存储容量。
2.2 数据压缩
对数据重新进行编码,以减少所需要的存储空间。数据压缩必须是可逆的,也即压缩过的数据必须可以恢复成原状,其逆过程称为解压缩。
当数据压缩后,文件的大小变小了,可以用压缩比来衡量压缩的数量。例如,压缩比为20:1,表明压缩后的文件大小是原文件的1/20。压缩编码方法有无损压缩法(冗余压缩法)和有损压缩法。后者允许有一定程度的失真,可用于对图像、声音、数字视频等数据的压缩。其中用这种方法压缩数据时,数字视频图像的压缩比可达到100:1~200:1。
数据压缩可以由特殊的计算机硬件实现或完全由软件来实现,也可以软、硬件相结合的方法来实现 。常用的压缩软件由Winzip等。
2.2.1文本文件压缩
自适应式替换压缩技术
扫描整个文本并且寻找两个或多个字节组成的模式。一旦发现一个新的模式,会用文件中其他地方没有用过的字节来代替这个模式,并在字典中加入一个入口。例如:有这样一段文本
"the rain in Spain stays mainly on the plain, but the rain in Maine falls again and again"
其中:"the" 是一种模式,在文中出现3次,若用"#"来替换,可以压缩6个字节;"ain"出现8次,若用"@"来替换,可以压缩16个字节;"in" 出现2次,若用"$"来替换,可以压缩2个字节等。可见,文件越长,包含重复信息的可能越大,压缩比也越大。
扫描整个文档,并寻找重复的单词。当一个单词出现的次数多于一次时,那么从第二次及以后出现的该单词都会用一个数字来替换。这个数字称为原单词的指针。例如:上例中的文本可以压缩为:"the rain in Spain stays mainly on #1 plain, but #1 #2 #3 Maine falls again and #16"可见,只压缩了6个字节,文件越大,单词重复的频率越高,因而压缩效果也越好。
2.2.2图象数据压缩
游程编码是针对于图形文件的压缩技术,它是一种寻找字节模式并用一个可以描述这个模式的消息进行替代的压缩技术。
例如:假设图像中有一个191个像素的白色区域,并且每个像素用一个字节来表示。经过游程编码压缩后,这串191个字节的数据被压缩成2个字节。
扩展名为.bmp的位图文件是没有压缩过的文件。扩展名为.tif、.pcx、.jpg的位图文件是已经压缩过的文件。以.tif为文件扩展名的文件使用的是TIFF(即带标志的图像文件格式)格式。以.pcx为文件扩展名的文件使用的是 PCX格式。以.jpg为文件扩展名的文件使用的是有损失的JPEG(Joint Photographic Experts Group,联合图像专家组)格式。人们往往对图像实行有损压缩。
2.2.3视频数据压缩
视频由一系列的帧组成,每一帧又是一幅位图图像,故视频文件需要巨大的存储容量。
人们通过减少每秒钟的播放帧数、减少视频窗口的大小或者只对每帧之间变化的内容进行编码等技术,来减少视频信号的存储容量。
数字视频常常采用的格式有:Video for Windows、QuickTime和MPEG格式,其文件的扩展名分别为:.avi、.mov、.mpg其中.mpg是一种压缩文件。MPEG格式可以将两个小时的视频信息压缩到几个GB。
视频压缩中还可以用运动补偿技术来减少存储容量。这种技术只存储每一帧之间变化的数据,而不需要存储每一帧中所有的数据。当某个视频片断每帧之间的变化不大时,用运动补偿技术非常有效。例如:一个说话人的头部,只有嘴和眼睛在变化,而背景却保持相当的稳定。此时计算机只需计算出两帧之间的差别,只存储改变的内容即可。根据数据的不同,运动补偿的压缩比可以达到200:1。另外,每秒钟的播放帧数直接影响到视频的播放质量。减小图像的大小也是一种有效的减少存储容量的好方法。一般可以综合以上几种压缩技术来达到减小视频文件存储容量的目的。
2.2.4 音频数据压缩
音频数据最突出的问题是信息量大。音频信息文件所需存储空间的计算公式为 :
存储容量(字节)= 采样频率×采样精度/8×声道数×时间
例如:一段持续1分钟的双声道音乐,若采样频率为44.1KHz,采样精度为16位,数字化后需要的存储容量为:44.1×103×16/8×2×60=10.584MB 。
数字音频的编码必须具有压缩声音信息的能力,最常用的方法是自适应脉冲编码调制法,即ADPCM压缩编码。
ADPCM压缩编码方案信噪比高,数据压缩倍率达2~5倍而不会明显失真,因此,数字化声音信息大多使用这种压缩技术。
2.3 信息加工
中央处理单元通常指为完成基本信息处理循环部件的总和。中央处理单元是计算机系统硬件的核心,它主要包括中央处理器(Central Processing Unit,CPU)、内存储器(Memory)、系统总线(System Bus)和控制部件等,通过这些部件的协同动作完成对信息的处理。
2.3.1 CPU
CPU是计算机系统的核心部件,它的工作就是处理信息、完成计算。CPU的种类很多。微型机的CPU也被称为"微处理器",是采用最先进技术生产的超大规模集成电路芯片。在这种芯片中通常集成了数百万计的晶体管电子元件,具有非常复杂的功能。比微型计算机性能更强的各种计算机,例如用于高性能网络服务器的计算机等,它们的CPU常常由一组高性能芯片构成,具有更强的计算能力。此外在各种现代化设备,例如各种机器设备、仪器、交通工具等内部都安装有所谓"嵌入式"的CPU芯片,几乎所有的高档电器内部也都装备了一片甚至几片CPU芯片。
2.3.2 内存储器
内存储器又称为主存储器(Main Memory),简称为内存或主存。内存是计算机工作中用于保存信息的主要部件,在一个计算机系统中起着极为重要的作用,它的工作速度和存储容量对系统的整体性能、对系统解决问题的规模和效能影响都非常大。对于内存储器,除了容量以外,另一个重要的性能指标就是它的访问速度。内存速度用进行一次读或写操作所花费的"访问时间"来衡量。
内存储器的基本存储单位称为存储单元,今天的计算机内存小存储器单元的结构模式,每个单元正好存储一个字节的信息(8位二进制代码)。每个单元对应了一个唯一的编号,由此形成的单元编号称为存储单元的地址。计算机中央处理单元中的各部件通过一条公共信息通路连接,这条信息通路称为系统总线。CPU和内存之间的信息交换是通过数据总线和地址总线进行的。内存是按照地址访问的,给出即可得到存储在具有这个地址的内存单元里的信息。CPU可以随即访问任何内存单元的信息。且访问时间的长短不依赖所访问的地址。
2.3.3 指令和程序
CPU的基本功能由它所提供的指令确定。当CPU得到一条指令以后,控制单元就解释这条指令,指挥其他部件完成这条指令。虽然有很多不同的CPU,但它们的基本指令具有共同性。CPU的基本指令主要包括以下几大类:
1) 存储器访问类指令
2) 算术运算和逻辑运算类指令
3) 条件判断和逻辑运算类指令
4) 输入输出指令
5) 控制和系统指令
指令也是在计算机里存在并需要在计算机里传输的一类信息,所以指令也必须采用二进制方式编码,以二进制形式在计算机里保存和传输。当CPU得到一条指令以后,控制单元就解释这条指令,指挥其他部件完成这条指令。
所谓"程序"就是为完成某种特定工作而实现的、由一系列计算机指令构成的序列。简单的说,程序就是指令的序列。一种具体的计算机的程序就是这种计算机的CPU能够执行的指令作为基本元素构成的序列。程序也可以看作是被计算机的CPU处理的一类信息,它实际上是被CPU的控制单元处理的,而不象一般数据那样被CPU的运算部件处理和使用。计算机基本工作循环由两个基本步骤组成:一个是取指令,另一个是执行指令。程序控制器是实现这个基本循环的主体。
人们在分析了在程序中需要实现的各种计算过程的需要之后,提出了程序的三种基本逻辑结构,称为程序的三种"基本控制结构",即"顺序结构"、"分支结构"和"循环结构",已经在理论上证明了这三种结构的能力是充分的,任何程序都能仅仅用这三种结构构造起来。三种基本控
❻ MMX指令的介绍
MMX寄存器有64位,可以同时进行8对字节或4对字或2对双字同时相同操作,还可以进行饱和运算,也就是运算结果有个顶点,
不会溢出,当然也可以进行普通运算.
MM表示64位MMX寄存器.
r32表示32位通用寄存器或esi,edi
m32表示32位内存变量
m64表示64位内存变量
m128表示128位内存变量
imm8表示8位立即数
左操作数为目的操作数,右操作数为源操作数
'|'字符表示每组数据之间的间隔分隔符
movd MM,r32/m32
把 r32/m32 值赋给 MM 的低32位,高32位清零.
movd r32/m32,MM
把 MM 的低32位值赋给 r32/m32.
例:
当MM0 == 1234567887654321 h,eax == 0abc h时,执行movd MM0,eax,则MM0 == 0abc h
当MM0 == 1234567887654321 h,eax == 0abc h时,执行movd eax,MM0,则eax == 87654321 h
movq MM,MM/m64
把源MM/m64的值送入目的MM.
例:
当MM0 == 1234567887654321 h,MM1 == 3141592653 h时,执行movq MM0,MM1,则MM0 == 3141592653 h
movntq m64,MM
m64 <== MM ,MM内容送入m64,不经过cache.
pmovmskb r32,MM
r[0] <== MM[7]
r[1] <== MM[15]
r[2] <== MM[23]
r[3] <== MM[31]
r[4] <== MM[39]
r[5] <== MM[47]
r[6] <== MM[55]
r[7] <== MM[63]
r[31-8] <== 0
paddsb MM,MM/m64
按字节对齐,饱和有符号数(补码)相加(结果= -128~+127,80h~7fh),值送入目的MM.
当结果小于-128时,结果强制转为80h,当结果大于+127时,结果强制转为7fh.
例:
当MM0 == 00 c0 fe 7e 11 h,
MM1 == 12 a6 9c 10 02 h时,执行 paddsb MM0,MM1,
则MM0 == 12 80 9a 7f 13 h
0c0h = -64,0a6h = -90,-64 + (-90) = -154,-154 < -128,所以结果为80h
7eh=126,10h=16,126+16=142,142>127,所以结果为7fh
其余的未饱和所以结果正常.
paddsw MM,MM/m64
按字对齐,饱和有符号数(补码)相加(结果= -32768~+32767,8000h~7fffh),值送入目的MM.
运算与paddsb类似,当结果小于-32768时,结果强制转为8000h,当结果大于,+32767时,结果强制转为7fffh.
padsb MM,MM/m64
按字节对齐,饱和无符号数相加(结果= 0~255,0h~0ffh),值送入目的MM.
当结果大于255时,结果强制转为0ffh.
例:
当MM0 == 23 11 h,MM1 == fc 22 h时,执行padsb MM0,MM1,则MM0 == ff 33h
23h = 35,0fch = 253,35 + 253 = 288,288 > 255,所以结果为0ffh
padsw MM,MM/m64
按字对齐,饱和无符号数相加(结果= 0~65535,0h~0ffffh),值送入目的MM.
运算与padsb类似,当结果大于65535时,结果强制转为0ffffh.
psubsb MM,MM/m64
按字节对齐,饱和有符号数(补码)相减(结果= -128~+127,80h~7fh),值送入目的MM.
运算与paddsb类似,当结果小于-128时,结果强制转为80h,当结果大于,+127时,结果强制转为7fh.
psubsw MM,MM/m64
按字对齐,饱和有符号数(补码)相减(结果= -32768~+32767,8000h~7fffh),值送入目的MM.
运算与paddsw类似,当结果小于-32768时,结果强制转为8000h,当结果大于,+32767时,结果强制转为7fffh.
paddb MM,MM/m64
按字节对齐,普通相加,与add指令类似.
例:
当MM0 = 12 34 56 78 ab cd ef feh,
MM1 = 87 69 86 54 3d ea cb 03h,执行paddb MM0,MM1,
则MM0 = 99 9d dc cc e8 b7 ba 01h
paddw MM,MM/m64
按字对齐,普通相加,与add指令类似.
paddd MM,MM/m64
按双字对齐,普通相加.与add指令类似.
paddq MM,MM/m64
按四字对齐,普通相加.
例:
当MM0 == 0fffffffffffffffeh,MM1 == 3h,执行paddq MM0,MM1,则MM0 = 1h
psubb MM,MM/m64
按字节对齐,普通相减,与sub指令类似.
psubw MM,MM/m64
按字对齐,普通相减,与sub指令类似.
psubd MM,MM/m64
按双字对齐,普通相减.与add指令类似.
psubq MM,MM/m64
按四字对齐,普通相减.
例:
当MM0 == 1h,MM1 == 3 h,执行psubq MM0,MM1,则MM0 = 0fffffffffffffffeh
psllw MM,MM/m64 psllw MM,imm8
把目的寄存器按字由源存储器(或imm8 立即数)指定位数逻辑左移,移出的位丢失.
低字移出的位不会移入高字.
例:
当MM0 = 0ffff ffff ffff ffffh,执行psllw MM0,1
则MM0 = 0fffe fffe fffe fffeh
psrlw MM,MM/m64 psrlw MM,imm8
把目的寄存器按字由源存储器(或imm8 立即数)指定位数逻辑右移,移出的位丢失.
高字移出的位不会移入低字.
例:
当MM0 = 0ffff ffff ffff ffffh,执行psrlw MM0,1
则MM0 = 07fff 7fff 7fff 7fffh
pslld MM,MM/m64 pslld MM,MM imm8
把目的寄存器按双字由源存储器(或imm8 立即数)指定位数逻辑左移,移出的位丢失.
低双字移出的位不会移入高双字.
例:
当MM0 = 0ffffffff ffffffffh,执行pslld MM0,1
则MM0 = 0fffffffe fffffffeh
psrld MM,MM/m64 psrld MM,imm8
把目的寄存器按双字由源存储器(或imm8 立即数)指定位数逻辑右移,移出的位丢失.
高双字移出的位不会移入低双字.
例:
当MM0 = 0ffffffff ffffffffh,执行psrld MM0,1
则MM0 = 07fffffff 7fffffffh
pmullw MM,MM/m64
按字对齐,有符号(补码)相乘,取结果低16位,放入目的寄存器的对应字.
例:
当MM0 == 2 acfeh,MM1 == 9 cef3h,执行 pmulhw,则MM0 = 0000 0000 0012 991ah
2 * 9 = 18,18 = 0000 0012h,取低16位 0012 为结果.
0acfeh == -21250,0cef3h == -12557,-21250*-12557 = 266836250 = 0fe7 991a h,取低16位 991a 为结果.
pmulhw MM,MM/m64
按字对齐,有符号(补码)相乘,取结果高16位,放入目的寄存器的对应字.
例:
当MM0 == 2 acfeh,MM1 == 9 cef3h,执行 pmulhw,则MM0 = 0000 0000 0000 0fe7h
2 * 9 = 18,18 = 0000 0012h,取高16位 0000 为结果.
0acfeh == -21250,0cef3h == -12557,-21250*-12557 = 266836250 = 0fe7 991a h,取高16位 0fe7 为结果.
▲注:在MMX指令集中没有除法指令.
﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
pand MM,MM/m64
64个位'与'操作,结果放入目的寄存器.
pandn MM,MM/m64
目的寄存器按位先取'非',再'与'源寄存器,结果放入目的寄存器.
por MM,MM/m64
64个位'或'操作,结果放入目的寄存器.
pxor MM,MM/m64
64个位'异或'操作,结果放入目的寄存器.
pmaddwd MM,MM/m64
按字对齐有符号(补码)向量点乘.
高32位 | 低32位
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器结果: a0*b0+a1*b1 | a2*b2+a3*b3
例:
当MM0 = 0006 8a11 1234 4321h,
MM1 = 0154 c239 ae39 2b35h,当执行pmaddwd MM0,MM1
则MM0 = 1c75a7c1 0583d669h 注意是有符号操作!
pcmpeqb MM,MM/m64
源寄存器与目的寄存器按字节比较,相等就置目的寄存器对应字节为0ffh,否则为00h
例:
当MM0 == 20 11h,MM1 == 21 11h,执行pcmpeqb MM0,MM1,则MM0 = ff ff ff ff ff ff 00 ff h
注:MM0与MM1的高48为0,因为0 == 0,所以置目的寄存器对应字节为0ffh.
pcmpeqw MM,MM/64
源寄存器与目的寄存器按字比较,相等就置目的寄存器对应字为0ffffh,否则为0000h
pcmpeqd MM,MM/m64
源寄存器与目的寄存器按双字比较,相等就置目的寄存器对应双字为0ffffffffh,否则为00000000h
pcmpgtb MM,MM/m64
源寄存器与目的寄存器按字节(有符号补码)比较,
当目的寄存器对应字节大于源寄存器就置目的寄存器对应字节为0ffh,否则为00h
例:
当MM0 == 80 12 11 h,MM1 == 7f 12 10h,执行pcmpgtb MM0,MM1,则MM0 = 00 00 ffh
因为80h = -128,7fh = 127,-128<127,所以结果为00h
pcmpgtw MM,MM/m64
源寄存器与目的寄存器按字(有符号补码)比较,
当目的寄存器对应字大于源寄存器就置目的寄存器对应字为0ffffh,否则为0000h
pcmpgtd MM,MM/m64
源寄存器与目的寄存器按双字(有符号补码)比较,
当目的寄存器对应双字大于源寄存器就置目的寄存器对应双字为0ffffffffh,否则为00000000h
packuswb MM,MM/m64
把目的寄存器按字有符号数压缩为字节无符号数放入目的寄存器低32位
把源寄存器按字有符号数压缩为字节无符号数放入目的寄存器高32位
压缩时负数变为00h,大于255的正数变为0ffh.
高32位 | 低32位
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器压缩结果: b0|b1| b2|b3| a0|a1|a2|a3
例:
当MM0 == 7fff 8000 1234 00ae h,MM1 == 00ad 0123 80ff 0100 h,
执行packuswb MM0,MM1,则MM0 = ad ff 00 ff ff 00 ff ae h.
packsswb MM,MM/m64
把目的寄存器按字有符号数压缩为字节有符号数放入目的寄存器低32位
把源寄存器按字有符号数压缩为字节有符号数放入目的寄存器高32位
压缩时小于-128负数变为80h,大于127的正数变为7fh.
高32位 | 低32位
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器压缩结果: b0|b1| b2|b3| a0|a1|a2|a3
例:
当MM0 == 0fff ff06 0080 0012 h,MM1 == 0001 8000 ffff 7fff h,
执行packsswb MM0,MM1,则MM0 = 01 80 ff 7f 7f 80 7f 12 h
packssdw MM,MM/m64
把目的寄存器按双字有符号数压缩为单字有符号数放入目的寄存器低32位
把源寄存器按双字有符号数压缩为单字有符号数放入目的寄存器高32位
压缩时小于-32768负数变为8000h,大于32767的正数变为7fffh.
高32位 | 低32位
目的寄存器:a0 | a1
源寄存器: b0 | b1
目的寄存器压缩结果: b0 | b1 | a0 | a1
punpcklbw MM,MM/m64
把目的寄存器与源寄存器的低32位按字节交错排列放入目的寄存器
高32位 | 低32位
目的寄存器: a0|a1|a2|a3|a4|a5|a6|a7
源寄存器: b0|b1|b2|b3|b4|b5|b6|b7
目的寄存器结果:b4|a4|b5|a5|b6|a6|b7|a7
例:
当MM0 == 01 02 03 04 05 06 07 08 h,MM1 == 09 0a 0b 0c 0d 0e 0f 00 h
执行punpcklbw MM0,MM1,则MM0 = 0d 05 0e 06 0f 07 00 08 h
punpcklwd MM,MM/m64
把目的寄存器与源寄存器的低32位按字交错排列放入目的寄存器
高32位 | 低32位
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器结果:b2 | a2 | b3 | a3
punpckldq MM,MM/m64
把目的寄存器与源寄存器的低32位按双字交错排列放入目的寄存器
高32位 | 低32位
目的寄存器:a0 | a1
源寄存器: b0 | b1
目的寄存器结果: b1 | a1
punpckhbw MM,MM/m64
把目的寄存器与源寄存器的高32位按字节交错排列放入目的寄存器
高32位 | 低32位
目的寄存器: a0|a1|a2|a3|a4|a5|a6|a7
源寄存器: b0|b1|b2|b3|b4|b5|b6|b7
目的寄存器结果:b0|a0|b1|a1|b2|a2|b3|a3
例:
当MM0 == 01 02 03 04 05 06 07 08 h,MM1 == 09 0a 0b 0c 0d 0e 0f 00 h
执行punpcklbw MM0,MM1,则MM0 = 09 01 0a 02 0b 03 0c 04 h
punpckhwd MM,MM/m64
把目的寄存器与源寄存器的高32位按字交错排列放入目的寄存器
高32位 | 低32位
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器结果:b0 | a0 | b1 | a1
punpckhdq MM,MM/m64
把目的寄存器与源寄存器的高32位按双字交错排列放入目的寄存器
高32位 | 低32位
目的寄存器:a0 | a1
源寄存器: b0 | b1
目的寄存器结果: b0 | a0
❼ 300K的照片是多大
1K=1024字节,300K=300x1024=307200字节
300k是图片的大小有不是图片的尺寸,一张图片的大小有很多因素决定,图像的分辨率,图像的尺寸,图像颜色的丰富度,存储图片的格式,存储图片格式时的规格等等元素决定。
字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。Byte数据类型(字节型)用一个字节(Byte)储存,可区别256个数字,取值范围:0到255。Byte是从0-255的无符号类型,所以不能表示负数。
分辨率指屏幕上像素的数目,为了控制像素的亮度和彩色深度,每个像素需要很多个二进制位来表示,如果要显示256种颜色,则每个像素至少需要8位(一个字节)来表示,即2的8次方等于256;当显示真彩色时,每个像素要用3个字节的存储量.
❽ 急求 CTE-2108温控器说明书
参数设定操作:
◆修改参数值操作: ◇按住[设置]键 3S 进入参数项选择模式,设置指示灯亮;LED 显示某一参数 项; ◇按[▲]或[▼]键选择参数项 (F1……F7) 按[▲]增加, , 按[▼]减少, 再按[设 置]键显示相应参数项的参数值; ◇按住[设置]键不松手,同时再按一下[▲]键或[▼]键改变参数值,如连续按 [▲]或[▼]键不放, 参数值自动快速增大或减小; 松开[设置]键, 单按[▲]或[▼] 键选择下一个参数项,按住[设置]键不松手,同时再按一下[▲]键或[▼]键改变 参数值,重复以上步骤进行所有参数值的设定; ◇所有参数设定完毕,按一下[确认]键保存所有设定值,返回温度测量状态设 置指示灯灭。若 30S 后无键操作,机器自动存储设定值并返回温度测量状态,设 置指示灯灭。若在参数设定完成后 30S 内未按[确认]键保存就断电,机器仍按原 来的参数值运行。
◆查看参数值操作: ◇按一下[▲]键,显示已设定上限值 2S,返回当前温度 显示状态; ◇按一下[▼]键,显示已设定下限值 2S,返回当前温度显示状态; ◇按一下[设置]键,显示已设定除霜间隔、最大除霜时间各 2S,返回当前温 度显示状态。
控制功能说明: ◆制冷控制; ◇当探头测量值≥设定上限值时,制冷继电器闭合,启动制冷压缩机;当探头 测量值≤设定下限时,制冷继电器断开,关闭制冷压缩机。 ◆除霜控制: ◇定时除霜:机器持续运行时间=设定除霜周期时间时,除霜继电器闭合,启 动除霜设备;运行完毕最大除霜时间时,除霜继电器断开,关闭除霜设备。 ◇手动除霜:当除霜周期设定不合理,且必须除霜时,可执行手动除霜功能。 具体操作为:按住[▼]键 3S,进入手动除霜状态,除霜继电器闭合,启动除霜 设备;再按住[▼]键 3S,退出手动除霜状态,除霜继电器断开,关闭除霜设备。 若不手动退出,则运行最大除霜时间后自行退出手动除霜状态。 ◇取消除霜:将除霜周期或最大除霜时间任一设置为“0”,则取消除霜功能。
辅助功能说明: ◆温度校正: ◇若机器测量温度示值与标准温度示值有偏差时,可使用温度校正功能,对机 器测量示值进行校正。具体操作为:按住[设置]键 3S 进入设置状态后,按[▲] 或[▼]键调整到 LED 显示 F3,同时按住[设置 J 键和[▲]或[▼]键,在一 5℃~ +5℃范围内选定一适宜值。校正后显示值=校正前显示值+校正值。校正值可以为 正数,也可以为负数。
◆延时保护: ◇机器第一次上电,如当前温度高于设定上限值时,不能立即启动制冷,需运 行延时时间后才会进入制冷状态; ◇机器持续通电状态下,制冷继电器两次闭合间隔≥延时时间时,立即启动制 冷,不足延时时间时,需运行延时时间后才会进入制冷状态。延时时间从压缩机 停机瞬间开始计时。 ◇设置延时时间为“0”时,取消延时。
◆报警功能: ◇高低温报警:机器高低温报警设置范围为 0~20℃。当探头测量值≥上限值 +高低温报警设定值,或探头测量值≤下限值一高低温报警设定值时,机器进入 高低温报警状态:蜂鸣器连续啸叫,数码管闪烁显示温度值。按任意键 消除报警音,如不按,持续报警到温度回到范围内。 ◇超测量范围报警:机器测控温范围为-40℃~+50℃。温度>50℃时,LED 显 示“HH”; 温度<-40℃时,LED 显示“LL'’。 ◇探头故障报警: 当探头断路或短路时, 机器进入报警状态: 蜂鸣器连续啸叫, LED 闪烁显示故障符号“Er” ,按任意键消除报警音。若不按按键,持续报警直 至故障排除。 指示灯状态说明: 化霜指示灯 制冷指示灯 设置指示灯 亮 闪 亮 闪 亮 定时除霜 手动除霜 压缩机制冷 压缩机延时 参数设置 程序参数说明: 符号 项目 内容 出厂设 单位 置 -10 -20 0 2 15 20 1 ℃ ℃ ℃ 小时 分钟 ℃ 分钟 -39~ +50 -40~ F2 设定温度下限 +49 F3 温度校正值 -5~+5 F4 除霜周期 0~99 F5 除霜时间 0~99 F6 高低温报警值 0~20 F7 延时时间 0~9 F1 设定温度上限
使用注意事项: ◆注意制冷和化霜所接负载一定不要超过输出接点容量, 否则可能造成机器损坏 和引起火灾。 ◆各种连接导线要与接线端子接压良好,否则,会造成机器可靠性降低。
❾ rar压缩包保存到数据库中的格式
6356?压缩文件、OFFICE文档文件以及其他的任何体积大了的文件,都可以采用二进制的方式保存在数据库中,我想你们用的也是MSSQL数据库吧。以下是其数据类型的详细说明:在计算机中数据有两种特征:类型和长度。所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。
在SQL Server 中每个变量、参数、表达式等都有数据类型。系统提供的数据类型分为几大类,如表4-2 所示。
其中,BIGINT、 SQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型。下面分类讲述各种数据类型。
4.3.1 整数数据类型
整数数据类型是最常用的数据类型之一。
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 位表示整数值的长度和大小。
3、TINYINT
TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。
4、BIGINT
BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。
4.3.2 浮点数据类型
浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行2 位和12位舍入,结果为3.15 和3.141592653590。
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 个字节存储它。
3、DECIMAL
DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数(不包括小数点),缺省值为18; s 表示小数点后的位数,缺省值为0。 例如:decimal (15 5),表示共有15 位数,其中整数10 位,小数5。
4、NUMERIC
NUMERIC数据类型与DECIMAL数据类型完全相同。
注 意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。但可以通过使用命令来执行sqlserver.exe程序以启动SQL Server,可改变默认精度。命令语法如下:SQLSERVR[/D master_device_path][/P precisim_leve1]
例: 用最大数据精度38 启动SQL Server
sqlservr /d c:\ Mssql2000\data\master.dat /p38
/*在使用了/P 参数后,如果其后没有指定具体的精度数值,则默认为38 位./*
4.3.3 二进制数据类型
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数据类型。
一般情况下,由于BINARY 数据类型长度固定,因此它比VARBINARY 类型的处理速度快。
4.3.4 逻辑数据类型
BIT: BIT数据类型占用1 个字节的存储空间,其值为0 或1 。如果输入0 或1 以外的值,将被视为1。 BIT 类型不能定义为NULL 值(所谓NULL 值是指空值或无意义的值)。
4.3.5 字符数据类型
字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号” 。
1 CHAR
CHAR 数据类型的定义形式为CHAR[ (n) ]。 以CHAR 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间,n 的取值为1 到8000, 即可容纳8000 个ANSI 字符。若不指定n 值,则系统默认值为1。 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。
2、NCHAR
NCHAR数据类型的定义形式为NCHAR[ (n) ]。 它与CHAR 类型相似。不同的是NCHAR数据类型n 的取值为1 到4000。 因为NCHAR 类型采用UNICODE 标准字符集(CharacterSet)。 UNICODE 标准规定每个字符占用两个字节的存储空间,所以它比非UNICODE 标准的数据类型多占用一倍的存储空间。使用UNICODE 标准的好处是因其使用两个字节做存储单位,其一个存储单位的容纳量就大大增加了,可以将全世界的语言文字都囊括在内,在一个数据列中就可以同时出现中文、 英文、法文、德文等,而不会出现编码冲突。
3、VARCHAR
VARCHAR数据类型的定义形式为VARCHAR [ (n) ]。 它与CHAR 类型相似,n 的取值也为1 到8000, 若输入的数据过长,将会截掉其超出部分。不同的是,VARCHAR数据类型具有变动长度的特性,因为VARCHAR数据类型的存储长度为实际数值长度,若 输入数据的字符数小于n ,则系统不会在其后添加空格来填满设定好的空间。
一般情况下,由于CHAR 数据类型长度固定,因此它比VARCHAR 类型的处理速度快。
4、NVARCHAR
NVARCHAR数据类型的定义形式为NVARCHAR[ (n) ]。 它与VARCHAR 类型相似。不同的是,NVARCHAR数据类型采用UNICODE 标准字符集(Character Set), n 的取值为1 到4000。
4.3.6 文本和图形数据类型
这类数据类型用于存储大量的字符或二进制数据。
1、TEXT
TEXT数据类型用于存储大量文本数据,其容量理论上为1 到2的31次方-1 (2, 147, 483, 647)个字节,在实际应用时需要视硬盘的存储空间而定。
SQL Server 2000 以前的版本中,数据库中一个TEXT 对象存储的实际上是一个指针,它指向一个个以8KB (8192 个字节)为单位的数据页(Data Page)。 这些数据页是动态增加并被逻辑链接起来的。在SQL Server 2000 中,则将TEXT 和IMAGE 类型的数据直接存放到表的数据行中,而不是存放到不同的数据页中。 这就减少了用于存储TEXT 和IMA- GE 类型的空间,并相应减少了磁盘处理这类数据的I/O 数量。
2 NTEXT
NTEXT数据类型与TEXT.类型相似不同的,是NTEXT 类型采用UNICODE 标准字符集(Character Set), 因此其理论容量为230-1(1, 073, 741, 823)个字节。
3 IMAGE
IMAGE数据类型用于存储大量的二进制数据Binary Data。 其理论容量为2的31次方-1(2,147,483,647)个字节。其存储数据的模式与TEXT 数据类型相同。通常用来存储图形等OLE Object Linking and Embedding,对象连接和嵌入)对象。在输入数据时同BINARY数据类型一样,必须在数据前加上字符“0X”作为二进制标识
4.3.7 日期和时间数据类型
1 DATETIME
DATETIME 数据类型用于存储日期和时间的结合体。它可以存储从公元1753 年1 月1 日零时起到公元9999 年12 月31 日23 时59 分59 秒之间的所有日期和时间,其精确度可达三百分之一秒,即3.33 毫秒。DATETIME 数据类型所占用的存储空间为8 个字节。其中前4 个字节用于存储1900 年1 月1 日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期。后4 个字节用于存储从此日零时起所指定的时间经过的毫秒数。如果在输入数据时省略了时间部分,则系统将12:00:00:000AM作为时间缺省值:如果省略 了日期部分,则系统将1900 年1 月1 日作为日期缺省值。
2 SMALLDATETIME
SMALLDATETIME 数据类型与DATETIME 数据类型相似,但其日期时间范围较小,为从1900 年1 月1 日到2079 年6 月6:日精度较低,只能精确到分钟,其分钟个位上为根据秒数四舍五入的值,即以30 秒为界四舍五入。如:DATETIME 时间为14:38:30.283
时SMALLDATETIME 认为是14:39:00 SMALLDATETIME 数据类型使用4 个字节存储数据。其中前2 个字节存储从基础日期1900 年1 月1 日以来的天数,后两个字节存储此日零时起所指定的时间经过的分钟数。
下面介绍日期和时间的输入格式
日期输入格式
日期的输入格式很多大致可分为三类:
英文+数字格式
此类格式中月份可用英文全名或缩写,且不区分大小写;年和月日之间可不用逗号;
年份可为4 位或2 位;当其为两位时,若值小于50 则视为20xx 年,若大于或等于50 则
视为19xx 年;若日部分省略,则视为当月的1号。以下格式均为正确的日期格式:
June 21 2000 Oct 1 1999 January 2000 2000 February
2000 May 1 2000 1 Sep 99 June July 00
数字+分隔符格式
允许把斜杠(/)、连接符(-)和小数点(.)作为用数字表示的年、月、日之间的分
隔符。如:
YMD:2000/6/22 2000-6-22 2000.6.22
MDY:3/5/2000 3-5-2000 3.5.2000
DMY:31/12/1999 31-12-1999 31.12.2000
纯数字格式
纯数字格式是以连续的4 位6、位或8 位数字来表示日期。如果输入的是6 位或8 位
数字,系统将按年、月、日来识别,即YMD 格式,并且月和日都是用两位数字来表示:
如果输入的数字是4 位数,系统认为这4 位数代表年份,其月份和日缺省为此年度的1 月
1 日。如:
20000601---2000 年6 月1 日 991212---1999 年12 月12 日 1998---1998 年 ????
时间输入格式
在 输入时间时必须按“小时、分钟、秒、毫秒”的顺序来输入。在其间用冒号“:”隔开。但可将毫秒部分用小数点“.” 分,隔其后第一位数字代表十分之一秒,第二位数字代表百分之一秒,第三位数字代表千分之一秒。当使用12 小时制时用AM。am 和PM(pm)分别指定时间是午前或午后,若不指定,系统默认为AM。AM 与PM 均不区分大小写。如:
3:5:7.2pm---下午3 时5 分7 秒200 毫秒
10:23:5.123Am---上午10 时23 分5 秒123 毫秒
可以使用SET DATEFORMAT 命令来设定系统默认的日期-时间格式。
4.3.8 货币数据类型
货币数据类型用于存储货币值。在使用货币数据类型时,应在数据前加上货币符号,系统才能辨识其为哪国的货币,如果不加货币符号,则默认为“¥”。
1 MONEY
MONEY 数据类型的数据是一个有4 位小数的DECIMAL 值,其取值从-2的63次方(-922,337,203,685,477.5808到2的63次方 -1(+922,337,203,685,477.5807),数据精度为万分之一货币单位。MONEY 数据类型使用8个字节存储。
2 SMALLMONEY
SMALLMONEY数据类型类似于MONEY 类型,但其存储的货币值范围比MONEY数据类型小,其取值从-214,748.3648到+214,748.3647,存储空间为4 个字节。
4.3.9 特定数据类型
SQL Server 中包含了一些用于数据存储的特殊数据类型。
1 TIMESTAMP
TIMESTAMP数据类型提供数据库范围内的惟一值此类型相当于BINARY8或VARBINARY(8),但当它所定义的列在更新或插入数据行时,此 列的值会被自动更新,一个计数值将自动地添加到此TIMESTAMP数据列中。每个数据库表中只能有一个TIMESTAMP数据列。如果建立一个名为 “TIMESTAMP”的列,则该列的类型将被自动设为TIMESTAMP数据类型。
2 UNIQUEIDENTIFIER
UNIQUEIDENTIFIER 数据类型存储一个16 位的二进制数字。此数字称为(GUIDGlobally Unique Identifier ,即全球惟一鉴别号)。此数字由SQLServer 的NEWID函数产生的全球惟一的编码,在全球各地的计算机经由此函数产生的数字不会相同。
4.3.10 用户自定义数据类型
SYSNAME SYSNAME 数据类型是系统提供给用户的,便于用户自定义数据类型。它被定义为NVARCHAR(128),即它可存储128个UNICODE字符或256个一般字符。4.3.11 新数据类型
SQL Server 2000 中增加了3 种数据类型:BIGINT、SQL_VARIANT和TABLE。其中BIGINT数据类型已在整数类型中介绍,下面介绍其余两种:
1 SQL_VARIANT
SQL_VARIANT数据类型可以存储除文本、图形数据(TEXT、NTEXT、IMAGE)和TIMESTAMP类型数据外的其它任何合法的SQL Server数据。此数据类型大大方便了SQL Server的开发工作。
2 TABLE
TABLE 数据类型用于存储对表或视图处理后的结果集。这一新类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便快捷。 《希望对你有所帮助》
❿ 数据结构题
第1题 (2.0) 分 某二叉树的先根遍历序列和后根遍历序列相同,则该二叉树的特征是( )。A、高度等于其结点数B、任一结点无左孩子C、任一结点无右孩子D、空或只有一个结点第2题 (2.0) 分 关于哈夫曼树,下列叙述正确的是( )。A、可能有度为1的结点B、总是完全二叉树C、有可能是满二叉树D、WPL是深度最大叶子的带权路径长度第3题 (2.0) 分 给定整数集合{3,5,6,9,12},与之对应的哈夫曼树是( )。第4题 (2.0) 分 在n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素个数为( )。A、nB、n*eC、eD、2*e第5题 (2.0) 分 对于有向图,其邻接矩阵表示相比邻接表表示更易于进行的操作为( )。A、求顶点的邻接点B、求顶点的度C、深度优先遍历D、广度优先遍历第6题 (2.0) 分 为便于判别有向图中是否存在回路,可借助于( )。A、广度优先搜索算法B、最小生成树算法C、最短路径算法D、拓扑排序算法第7题 (2.0) 分 在待排关键字序列基本有序的前提下,效率最高的排序方法是( )。A、直接插入排序B、快速排序C、直接选择排序D、归并排序第8题 (2.0) 分 对n个元素进行冒泡排序,最好情况下的只需进行( )对相邻元素之间的比较。A、nB、n-1C、n+1D、n/2第9题 (2.0) 分 对包含n个关键字的散列表进行检索,平均检索长度是( )。A)O(log2n)B)O(n)C)不直接依赖于n
D)O(nlog2n)A、AB、BC、CD、D第10题 (2.0) 分 下列查找方法中,不属于动态的查找方法是( )。A、二叉排序树法B、平衡树法C、散列法D、二分查找法第11题 (2.0) 分 ( )存储方式适用于折半查找。A、键值有序的单链表B、键值有序的顺序表C、键值有序的双链表D、键值无序的顺序表第12题 (2.0) 分 在顺序表中,数据元素之间的逻辑关系用( )。
A、数据元素的相邻地址表示B、数据元素在表中的序号表示C、指向后继元素的指针表示D、数据元素的值表示第13题 (2.0) 分 若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省运算时间( )。A、单链表B、顺序表C、双链表D、单循环链表第14题 (2.0) 分 若只在线性表的首、尾两端进行插入操作,宜采用的存储结构为( )。A、顺序表B、用头指针表示的单循环链表C、用尾指针表示的单循环链表D、单链表第15题 (2.0) 分 算法分析是指( )。A、分析算法的正确性B、分析算法的可读性C、分析算法的健壮性D、分析算法的时空性能第16题 (2.0) 分 算法的时间复杂度取决于( )。A、问题的规模B、数据的初始状态C、A和BD、以上都不是第17题 (2.0) 分 若进栈序列为a,b,c,则通过入出栈操作能得到的a,b,c的不同排列个数为( )。A、4B、5C、6D、7第18题 (2.0) 分 下列关于串的叙述中,正确的是( )。A、一个串的字符个数即该串的长度B、一个串的长度至少是1C、空串是由空格字符组成的串D、两个串若长度相同,则它们相等第19题 (2.0) 分 下列叙述错误的是( )。A、多维数组是向量的推广。B、多维数组是非线性结构。C、如果将二维数组看成由若干个行向量组成的一维数组,则为线性结构。D、对矩阵进行压缩存储的目的是为了数据加密。第20题 (2.0) 分 若下图表示某广义表,则它是一种( )。
A、线性表B、纯表C、再入表D、递归表第21题 (2.0) 分某完全二叉树有7个叶子,则其结点总数为( )。A、14B、13C、13或14D、以上都不是第22题 (2.0) 分 在二叉链表上交换所有分支结点左右子树的位置,则利用( )遍历方法最合适。A、前序B、中序C、后序D、按层次第23题 (2.0) 分 线索二叉树中某结点为叶子的条件是( )。
A、p-> lchild!=NULL || p-> rchild!=NULLB、p-> ltag==0 || p-> rtag==0C、p-> lchild!=NULL & & p-> rchild!=NULLD、p-> ltag==1 & & p-> rtag==1第24题 (2.0) 分 连通图是指图中任意两个顶点之间( )。A、都连通的无向图B、都不连通的无向图C、都连通的有向图D、都不连通的有向图第25题 (2.0) 分 在n个顶点和e条边的无向图的邻接表中,边结点的个数为( )。A、nB、n*eC、eD、2*e第26题 (2.0) 分 图的深度遍历必须借助( )作为辅助空间。A、栈B、队列C、查找表D、数组第27题 (2.0) 分 下列排序方法中,稳定的是( )。A、直接选择排序B、冒泡排序C、快速排序D、希尔排序第28题 (2.0) 分 在不完全排序的情况下,就可以找出前几个最大值的方法是( )。A、快速排序B、直接插入排序C、堆排序D、归并排序第29题 (2.0) 分 n个记录直接选择排序时所需的记录最多交换次数是( )。A、n-1B、nC、n(n-1)/2D、n(n+1)/2第30题 (2.0) 分 从理论上讲,将数据以( )结构存放,查找一个数据的时间不依赖于数据的个数n。A、二叉查找树
B、链表C、散列表D、顺序表第31题 (2.0) 分 静态查找表与动态查找表二者的根本差别在于( )。A、它们的逻辑结构不一样B、施加在其上的操作不同C、所包含的数据元素的类型不一样D、存储实现不一样第32题 (2.0) 分 单链表中增加头结点的目的是为了( )。A、使单链表至少有一个结点B、标识表结点中首结点的位置C、方便运算的实现D、说明单链表是线性表的链式存储第33题 (2.0) 分 设p指向单链表中的一个结点,s指向待插入的结点,则下述程序段的功能是( )。s->next=p->next;p->next=s;t=p->data;p->data=s->data;s->data=t;A、结点*p与结点*s的数据域互换B、在p所指结点的元素之前插入元素C、在p所指结点的元素之后插入元素D、在结点*p之前插入结点*s第34题 (2.0) 分 若结点的存储地址与结点内容有某种确定的关系,则相应的存储结构应为( )。A、顺序存储结构B、链式存储结构C、索引存储结构D、散列存储结构第35题 (2.0) 分 下列各式中,按增长率由小至大的顺序正确排列的是( )。
A.n1/2,n!,2n,n3/2B.n3/2,2n,nlogn,2100C.2n,logn,nlogn,n3/2D.2100,logn, 2n, nn第36题 (2.0) 分 栈和队列的共同特点是( )。A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点第37题 (2.0) 分 引起循环队列队头位置发生变化的操作是( )。A、入队B、出队C、取队头元素D、取队尾元素第38题 (2.0) 分 设S=”abc”;T=”xyz”,则strcmp(S,T)的值为( )。A、正数
B、负数C、零D、不确定第39题 (2.0) 分 关于十字链表中的叙述,错误的是( )。A、便于查找每一行或列的非零元素B、每行、每列的非零元素分别组成行链表、列链表C、C.十字链表是一种多重链表D、行链表、列链表的头结点不能共用第40题 (2.0) 分若下图表示某广义表,则它是一种( )。A、线性表ì再入表ì纯表ì递归表B、线性表ì纯表ì递归表ì再入表C、纯表ì线性表ì再入表ì递归表D、线性表ì纯表ì再入表ì递归表第41题 (1.0) 分 在数据结构中,算法的空间耗费包括代码和数据两部分。对错第42题 (1.0) 分顺序表不需存放指针,链表要存放指针,故链表的存储空间要求总是比顺序表大。对错第43题 (1.0) 分 开散列表和闭散列表的装填因子都可大于、等于或小于1对错第44题 (1.0) 分 任何树或林都可转化为二叉树,反之,二叉树可转化为任何树或林。对错第45题 (1.0) 分 在线索二叉树上,求结点的(遍历)前趋和后继时可利用线索得到,即不必进行遍历了。对错第46题 (1.0) 分 无向图中边数等于邻接矩阵中1的个数的一半;也等于邻接表中的边表结点数的一半对错第47题 (1.0) 分 直接插入排序是稳定的,而Shell排序就是调用若干趟直接插入排序,故也是稳定的。对错第48题 (1.0) 分 图G的生成树T是G的子图。对错第49题 (1.0) 分 设串的长度为n,则其子串个数为n(n+1)/2。对错第50题 (1.0) 分 广义表不仅是线性表的推广,也是树的推广。对错第51题 (1.0) 分 数组各元素在内存中连续存放,故前后相邻的两元素物理地址相差为1或-1。对错第52题 (1.0) 分 算法的时间复杂性是指在计算机上的实际运行时间。对错第53题 (1.0) 分 单链表中取第i个元素的时间与i成正比。对错第54题 (1.0) 分 在二叉排序树中,即使删除一个结点后马上再插入该结点,该二叉排序树的形态也可能不同。对错第55题 (1.0) 分 不可能有二叉树的任何遍历次序是相同的。对错第56题 (1.0) 分 不管树的深度和形态如何,也不可能构造出一棵有100个结点的哈夫曼树。对错第57题 (1.0) 分 如果n个顶点的无向图有n条边,则图中肯定有回路。对错第58题 (1.0) 分 有向图中顶点i的出度等于邻接矩阵中第i行中1的个数;入度等于第i列中1的个数。对错第59题 (1.0) 分 堆排序是一种巧妙的树型选择排序。对错
希望对你能有所帮助。