博文
硬盘分区命令FDISK详解(2006-05-15 20:24:00)
摘要:
硬盘的使用过程:物理格式化(低级格式化)——>分区操作(FDISK)——>高级格式化(FORMAT)——>安装操作系统——>安装应用软件或游戏。一般来说,厂家将硬盘生产出来以后,低级格式化已由厂家完成,而硬盘的分区及高级格式化则留给供应商或用户自己来完成。硬盘的分区用FDISK命令完成。FDISK是DOS的公用程序和命令,它是硬盘分区的一种工具,是对硬盘进行高级格式化之前所需的操作。这个命令可以将硬盘分成不同的区域。以供DOS使用或给不同的操作系统使用,一般把这些区域称为硬盘的分区(Partition)。在硬盘分区时,系统将硬盘的分区信息存放到硬盘的固定位置上。这个固定位置叫做硬盘分区表(Hard-disk Partition Table)。在将硬盘之前,首先我们要了解几个概念:物理驱动器(物理硬盘):安装在计算机中的硬盘。逻辑驱动器(逻辑盘):硬盘中通过硬盘分区表创建的磁盘,例如C盘、D盘等。主DOS分区(PRI-Drive):DOS可以启动逻辑驱动器。一台计算机只能有一个主DOS分区。通过我们把它设置为C盘。扩展DOS分区(EXT-DOS):主DOS分区以外的那一部份硬盘空间。一般来讲,我们把主DOS分区以外的所有剩余硬盘空间都划分为扩展DOS分区。扩展DOS分区中可以包含一个或多个逻辑驱动器。大多数情况,FDISK是将整个硬盘划分给DOS使用,在DOS启动系统后,再安装其他操作系统。具体硬盘分区方法如下:用软盘或CDROM启动计算机;在DOS提示符下键入DOS命令“FDISK”并回车,这时就运行了硬盘的命令。屏幕出现下列信息:Your computer has a disk larger than 512 MB. This version of Windows includes improved support for large disks, resulting in more efficient use of disk space on large drives, and allowing disks over 2 GB to be formatted as a single drive.IMPORTANT: If you enable large disk support and create any new drives on this d......
VB串口编程的几个问题(2006-05-05 22:21:00)
摘要:
VB串口编程的几个问题作者:易兵 已阅读503次
目次:串口数据接收方式如何处理不定长数据的接收用字符方式收发码值大于127的字符数据串口通讯问答2串口数据接收方式1、 在OnComm 事件中接收数据:这种方式能充分MSCOMM控件的特性。OnComm 事件还可以检查和处理通讯错误;可以通过检查CommEvent 属性的值来查询事件和错误;对于不定长数据以及对数据进行处理比较复杂的情况,此法不是很方便。Private Sub MSComm_OnComm ()Select Case MSComm1.CommEvent' 错误Case comEventBreak ' 收到 Break。Case comEventCDTO ' CD (RLSD) 超时。Case comEventCTSTO ' CTS Timeout。Case comEventDSRTO ' DSR Timeout。Case comEventFrame ' Framing ErrorCase comEventOverrun '数据丢失。Case comEventRxOver'接收缓冲区溢出。Case comEventRxParity' Parity 错误。Case comEventTxFull '传输缓冲区已满。Case comEventDCB '获取 DCB] 时意外错误' 事件Case comEvCD ' CD 线状态变化。Case comEvCTS ' CTS 线状态变化。Case comEvDSR ' DSR 线状态变化。Case comEvRing ' Ring Indicator 变化。Case comEvReceive ' 收到 RThreshold # of chars.Case comEvSend ' 传输缓冲区有 Sthreshold 个字符 'Case comEvEof ' 输入数据流中发现 EOF 字符End SelectEnd Sub2.轮循法采集数据:A、定时器轮循法对于数据包方式收发数据以及不需即时响应情况,用轮循法更好些。实际上轮循法最大的好处在于集中处理数据而且不太占用CPU。轮循法要注意定时采集的时间片段大小;这里用二进制收发模式;使属性RThreshol......
数据加密技术(论文)(2006-05-05 22:17:00)
摘要:
数据加密技术(论文)
文章出处: 发布时间:2005-05-12 点击次数:1252
我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解密。
一:数据加密方法
在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都知道的pkzip,它既压缩数据又加密数据。又如,dbms的一些软件包总是包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,或者需要用户的密码。所有这些加密算法都要有高效的加密和解密能力。
幸运的是,在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。事实上,80x86 cpu系列就有一个指令‘xlat’在硬件级来完成这样的工作。这种加密算法比较简单,加密解密速度都很快,但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了。这种方法在计算机出现之前就已经被广泛的使用。
对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的......
读取还原精灵、还原卡密码的原理与程序制作(2006-04-30 22:35:00)
摘要:作者:qb45 作者地址:湖北-枝江帖子原来是2004-7-20日发布,2005-9-1新增括号里的内容(我是qb45,很多人很奇怪我为什么叫qb45,因为我只会用qbasic编程,用的是4.5的版本,别的版本不大会用,我的职业是“电工”,我很多的爱好中有个爱好是编程,我是个业余的编程爱好者,我是湖北·枝江的,qq号见编程爱好者论坛里的个人说明!http://www.programfan.com/club/showbbs.asp?id=82092还原精灵与还原卡的工作原理分析: 还原精灵的工作原理:它修改了引导区,引导区又被称为MBR,它位于硬盘的0头0柱1扇区,在扩展int 13中没有头、柱、扇区这个概念,它只有逻辑扇区,在扩展的int 13中MBR位于是0扇区,如果BIOS中设置的是硬盘启动的话,系统会首先载入这个扇区到内存,然后运行这个代码,还原精灵就是用的是自己的引导代码,这个方法与引导型病毒一样,病毒的目的是破坏,而它的目的是保护,就如武器在坏人手里有破坏力一样,这个代码接管了INT13中断,每当我们向硬盘写入数据时,其实还是写入到硬盘中,可是没有真正修改硬盘中的FAT。由于INT13被接管,当还原精灵发现是写操作,如果没有激活管理身份,便将原先数据目的地址重新指向它自己定义的一段连续的空磁盘空间,并将先前背份的第二份FAT中的被修改的相关数据指向这片空间。当我们读取数据时,和写操作相反。所以还原精灵需要被保护的磁盘上有较大的空闲空间,它就需要利用这段空间! 另外,用户不可能格式化真正的硬盘,还是因为被接管的INT13,所有对硬盘的操作都要通过INT13。还原卡的原理也和还原精灵软件的方法类似,不做详细解释如何解除还原精灵与还原卡的保护呢? 通过分析原理,我们发现保护程序是通过修改中断向量来达到保护硬盘不被真正写入的,其中int13是关键,它拦截了int13的处理程序,将自己的程序挂到上面,这也是无法写进数据的原因所在,有的卡同时还修改了时钟中断来达到反跟踪,它会利用早以被它修改过的时钟中断定时检查中断向量表,它一旦发现修改为别的值.就会一一还原。 所以我们从编程的角度......
超频4种思路2种方法5项注意 (2006-04-19 20:30:00)
摘要:“超频”在DIYer中是个永恒的话题,每每让CPU的速度提升一些或榨取一点硬件性能的“油水”,他们总会欣喜不已。DIYer就是为了让电脑用得更好,“超频”正是一把利器。随着游戏和大型应用软件的更新换代,电脑相对变慢或者根本“跑不动”都很快成为“残酷的现实”,升级?费用太高!别急,或许超频可以满足你暂时的需要。另外,据调查:电脑中几乎没有配件可以陪伴你三年。就拿笔者来说,2000年组装的“爱机”(i815E+赛扬600+128MB SDR)早已升级成(Barton 2600+ +KT600+512MB DDR),只有显示器还在为笔者服务。既然如此,我们何必让它们拥有那么长的寿命呢(何况“超频”是否不利于CPU还有争论,个人感觉运气成分更多一些)?“超”吧,“折腾”吧,我们会在更“快”中找到更快乐!下面我将从超频思路、超频方法、超频应注意的事项这三个方面简单地谈一下超频,算是一个“预热”!
超频思路:CPU主频=外频×倍频。这是一个众所周知的CPU主频计算公式,但这也从根本上为我们提供了“超频”的思路。很明显我们可以通过超外频、超倍频、两者同时超频、降倍频超外频等多种思路来达到超频的目的。以上这四种思路是比较有意义的,也是目前主要采用的。“降外频超倍频”从实质上来并没有什么实际意义,而仅仅是满足了没有体质强健CPU而又想炫耀频率的电脑爱好者一种虚荣而已。
四种超频思路
第一,超外频 &nb......
怎样接收电子邮件(POP3协议简介)(2006-04-17 21:04:00)
摘要:时间:2002.02.27 于重庆
主题:怎样接收电子邮件(POP3协议简介)
内容:怎样接收电子邮件(POP3协议简介) 在Internet,POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。这个协议很容易学,因为它只包含12个命令(其中有3个你完全可以忽略它们的存在)。这些命令被客户端计算机用来发送 给远程服务器。反过来,服务器返回给客户端计算机两个回应代码。如果你还没有看本站另一篇文章-“Winsock Terminal 示例程序”的话,请先阅读那篇文章,因为你需要那个程序来做实验。 运行示例程序,单击工具栏上的"Connect to"按钮。在弹出的对话框中输入你要连机的邮件服务器的地址例如:
mail.comset.net
选择POP3协议,然后单击"Connect"按钮。如果成功的话(如果出错,肯定是你服务器地址有问题,别怀疑到程序头上来),你会在文本框中看到服务器返回给你的信息。我的服务器的应答如下:
+OK POP3 mail.comset.net v5.49 server ready
这个字符串告诉你连机成功了。不同服务器的回应会有所不同,但开头部分都是一样的,那就是:"+OK"。它的意思是服务器接受客户端计算机所使用的命令顺序及语法。如果开头是"-ERR",则表示你使用了错误的命令。在你的应用程序中,只须处理来自服务器的回应的前面几个字符。这么小的处理量正是POP3相对其它协议的优势所在。
授权状态
好了,现在我们已经建立了同服务器的连接并且从服务器那里得到了肯定的回答。接下来要做的就是告诉服务器你的身份。服务器要管理成千上万个邮箱并不是件好难的事。它已为每个邮箱建立好了一个帐户。每个帐户由用户名和密码构成。当你连上服务器后,要发送的第一个命令就是USER,用户名是该命令的参数。具体写法如下:
USER username
如果用户名已注册,服务器将返回一条正确的消息,然后你就可以输入下面的命令,告诉服务器你的密码。
PASS password
如果用户名和密码吻合的话,服务器同样会返回一条正确的消息,告诉你可以进入下一阶段,即TRANSACTION state.
TRANSACTION状态
为了知道你的邮箱中目前有多少封邮件以及这些邮件的大小,可使用STAT命令。它会告诉......
UTF-8 and Unicode FAQ(2006-04-02 20:23:00)
摘要:UTF-8 and Unicode FAQ
by Markus Kuhn 中国LINUX论坛翻译小组 xLoneStar[译] 2000年2月
这篇文章说明了在 POSIX 系统 (Linux,Unix) 上使用 Unicode/UTF-8 所需要的信息. 在将来不远的几年里, Unicode 已经很接近于取代 ASCII 与 Latin-1 编码的位置了. 它不仅允许你处理处理事实上存在于地球上的任何语言文字, 而且提供了一个全面的数学与技术符号集, 因此可以简化科学信息交换.
UTF-8 编码提供了一种简便而向后兼容的方法, 使得那种完全围绕 ASCII 设计的操作系统, 比如 Unix, 也可以使用 Unicode. UTF-8 就是 Unix, Linux 已经类似的系统使用 Unicode 的方式. 现在是你了解它的时候了.
什么是 UCS 和 ISO 10646?
国际标准 ISO 10646 定义了 通用字符集 (Universal Character Set, UCS). UCS 是所有其他字符集标准的一个超集. 它保证与其他字符集是双向兼容的. 就是说, 如果你将任何文本字符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息.
UCS 包含了用于表达所有已知语言的字符. 不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文, 日文和韩文这样的象形文字, 以及 平假名, 片假名, 孟加拉语, 旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada), Malayalam, 泰国语, 老挝语, 汉语拼音(Bopomofo), Hangul, Devangari, Gujarati, Oriya, Telugu 以及其他数也数不清的语. 对于还没有加入的语言, 由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入. 这些语言包括 Tibetian, 高棉语, Runic(古代北欧文字), 埃塞俄比亚语, 其他象形文字, 以及各种各样的印-欧语系的语言, 还包括挑选出来的艺术语言比如 Tengwar, Cirth 和 克林贡语(Klingon). UCS 还包括大量的图形的, 印刷用的, 数学用的和科学用的符号, 包括所有由 TeX, Pos......
程序员趣味读物:谈谈Unicode编码 出处:CSDN (2006-04-02 14:23:00)
摘要:这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:
问题一:
使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?
我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢?
问题二:
最近在网上看到一个ConvertUTF.c,实现了UTF-32、UTF-16和UTF-8这三种编码方式的相互转换。对于Unicode(UCS2)、GBK、UTF-8这些编码方式,我原来就了解。但这个程序让我有些糊涂,想不起来UTF-16和UCS2有什么关系。
查了查相关资料,总算将这些问题弄清楚了,顺带也了解了一些Unicode的细节。写成一篇文章,送给有过类似疑问的朋友。本文在写作时尽量做到通俗易懂,但要求读者知道什么是字节,什么是十六进制。
0、big endian和little endian
big endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。还是将49写在前面,就是little endian。
“endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。
我们一般将endian翻译成“字节序”,将big endian和little endian称作“大尾”和“小尾”。
1、字符编码、内码,顺带介绍汉字编码
字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设......
Unicode转GB2312编码码表(2006-02-28 21:18:00)
摘要:00A4 A1E800A7 A1EC00A8 A1A700B0 A1E300B1 A1C000B7 A1A400D7 A1C100E0 A8A400E1 A8A200E8 A8A800E9 A8A600EA A8BA00EC A8AC00ED A8AA00F2 A8B000F3 A8AE00F7 A1C200F9 A8B400FA A8B200FC A8B90101 A8A10113 A8A5011B A8A7012B A8A9014D A8AD016B A8B101CE A8A301D0 A8AB01D2 A8AF01D4 A8B301D6 A8B501D8 A8B601DA A8B701DC A8B802C7 A1A602C9 A1A50391 A6A10392 A6A20393 A6A30394 A6A40395 A6A50396 A6A60397 A6A70398 A6A80399 A6A9039A A6AA039B A6AB039C A6AC039D A6AD039E A6AE039F A6AF03A0 A6B003A1 A6B103A3 A6B203A4 A6B303A5 A6B403A6 A6B503A7 A6B603A8 A6B703A9 A6B803B1 A6C103B2 A6C203B3 A6C303B4 A6C403B5 A6C503B6 A6C603B7 A6C703B8 A6C803B9 A6C903BA A6CA03BB A6CB03BC A6CC03BD A6CD03BE A6CE03BF A6CF03C0 A6D003C1 A6D103C3 A6D203C4 A6D303C5 A6D403C6 A6D503C7 A6D603C8 A6D703C9 A6D80401 A7A70410 A7A10411 A7A20412 A7A30413 A7A40414 A7A50415 A7A60416 A7A80417 A7A90418 A7AA0419 A7AB041A A7AC041B A7AD041C A7AE041D A7AF041E A7B0041F A7B10420 A7B20421 A7B30422 A7B40423 A7B50424 A7B60425 A7B70426 A7B80427 A7B90428 A7BA0429 A7BB0......
浅谈程序设计中的一些非常规算法(2006-02-28 20:48:00)
摘要:
浅谈程序设计中的一些非常规算法^_^
浅谈程序设计中的一些非常规算法^_^
我们在做题的时候肯定会遇到一些不知道该怎么解决的问题,也许是因为算法还不会,也许是因为会了但是算法不知道该怎么对应的使用。所以,也许可以用一种比较奇怪的方法来解决一些问题。当然,在平时的练习当中,我们要练的是各种各样的常规算法,以下的一些不太常规的方法只适用于的确实不知道该如何解决问题或者是特殊情况下,仅仅为了以这几种解法来说明程序设计中需要我们更多地运用我们的大脑来思考出属于我们自己的算法,以及用数学的一些建模的思想来辅助程序设计。
总之,勤于思考是最重要滴。
例一
TJU1010数素数
Problem
素数是的只能被1和它本身整除的自然数。判断一个数是素数的方法是使用2到该数的平方根的素数除它,若有能整除的则该数不是素数。
Input
本题有多组数据,每组数据由两个正整数M,N组成。(0<M<N<1000000=
Output
输出一个整数,表示介于M,N之间(包括M,N)的素数的数量。
记得上个星期四罗小松讲解这道题的时候采用了空间压缩的方式,以及建立素数表的方式。后者既然已经讲了这里就只作总结:在编程序设计的时候要多多利用计算机本身的功能。比如:编一个比较慢的程序计算出结果,然后寻找规律;建立表;用计算机自带的计算器辅助;甚至在忘记带草稿纸的情况下用记事本演算……
总之,要合理的利用计算机
而对于这道题,如果纯用“筛选法”求出m~n之间的素数,显然会超空间,而如果采用枚举法,时间又会不够。除了“空间压缩”这种方法之外,是否还有一个可以把这道题AC的方法呢。
首先我们考虑枚举法超时的原因:对于一个很大的数,比如100000,需要从2尝试到1000,而如果M与N相差很大,那么就会出现超时的情况。
其次我们再考虑筛选法,原因是数据限制到了1000000所以超出了空间限制。
第三,我们仔细思考,不难想到素数的特点:
除了1和本身之外没有其他的约数。
在这个定义上,我们可以发现,这里的约数有2种情况:1、合数;2、素数。而我们判断一个数n是否是素数,其实并不用用枚举法找出从2~round(sqrt(n))中是否存在一个数是它的约数,我们只需要判......
