07 2012 档案
摘要:之前一直认为for (int i = 0, h = arr.Count; i ,前者的效率比后者高大约一倍,如果arr是string[],两者效率基本差不多测试代码:int tnum = 100000; // 添加或查找的次数int outnum = 10; // 外层循环次数List arr = new List();for(int i=0;i abc;string a;if(!abc.TryGetValue(key, out a)){//key不存在}else{}而不要用下面的代码,因为下面的代码重复查找了2次key:if(!abc.ContainKeys(key)){//key不存在}e
阅读全文
摘要:/// /// 过滤非打印字符 /// /// 待过滤 /// 过滤好的 private string ReplaceLowOrderASCIICharacters(string tmp) { StringBuilder info = new StringBuilder(); foreach (char cc in tmp) { int ss = (int)cc; i...
阅读全文
摘要:xml转换string
阅读全文
摘要:“汇编语言”作为一门语言,对应于高级语言的编译器,我们需要一个“汇编器”来把汇编语言 原文件汇编成机器可执行的代码。高级的汇编器如MASM, TASM 等等为我们写汇编程序 提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程 序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如 此高级,即使全部用汇编语言来编写windows 的应用程序也是可行的,但这不是汇编语言 的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。而且我想这里 的人学习汇编的目的多半是为了在破解时看懂反汇编代码,很少有人真的要拿...
阅读全文
摘要:汇编指令的操作数可以是内存中的数据, 如何让程序从内存中正确取得所需要的数据就是 对内存的寻址。 INTEL 的CPU 可以工作在两种寻址模式:实模式和保护模式。前者已经过时,就不讲 了, WINDOWS 现在是32 位保护模式的系统, PE 文件就基本是运行在一个32 位线性 地址空间, 所以这里就只介绍32 位线性空间的寻址方式。 其实线性地址的概念是很直观的, 就想象一系列字节排成一长队,第一个字节编号为 0, 第二个编号位1, 。。。。一直到4294967295(十六进制FFFFFFFF,这是32 位二 进制数所能表达的最大值了)。这已经有4GB 的...
阅读全文
摘要:汇编语言和CPU 以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86 及其兼容机) ============================ x86 汇编语言的指令,其操作对象是CPU 上的寄存器,系统内存,或者立即数. 有些指令表面上没有操作 数, 或者看上去缺少操作数, 其实该指令有内定的操作对象,...
阅读全文
摘要:高级语言程序的汇编解析 在高级语言中,如C 和PASCAL 等等,我们不再直接对硬件资源进行操作,而是面 向于问题的解决,这主要体现在数据抽象化和程序的结构化。例如我们用变量名来存取数 据,而不再关心这个数据究竟在内存的什么地方。这样,对硬件资源的使用方式完全交给 了编译器去处理。不过,一些基本的规则还是存在的,而且大多数编译器都遵循一些规 范,这使得我们在阅读反汇编代码的时候日子好过一点。这里主要讲讲汇编代码中一些和 高级语言对应的地方。 1. 普通变量。通常声明的变量是存放在内存中的。编译器把变量名和一个内存地址联 系起来(这里要注意的是,所谓的“...
阅读全文
摘要:第1种: 第2种: 第3种: 第4种: 第5种: 按钮式: 链接式:返回上一步">返回上一步 直接跳转式:开新窗口:转跳 语法:ServerVariables(参数名称) 我们知道Web/Browse的传输协议是http,http的报头会有一些客户端的信息,如 客户IP地址、浏览器的语言系统等。这时可通过Request.ServerVariables("***")获取相关信息,如Request.ServerVariables("Accept_Language")可获取客户端浏览器 的语系。其他系统参数见下表: SERVER_NAME se
阅读全文

浙公网安备 33010602011771号