博文

[转]排序和算法总结(2010-12-25 18:23:00)

摘要:来源: http://blog.csdn.net/yangjixiang_hao123/archive/2009/12/09/4971469.aspx
排序和算法总结 收藏 function change_alt1(btn,style){var btn=document.getElementById(btn);btn.style.display = style 此文于2010-12-24被推荐到CSDN首页
如何被推荐? document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width......

阅读全文(6422) | 评论:3

[介绍]加密安全工具包CryptLib(2010-12-18 17:06:00)

摘要: CryptLib   CRYPTLIB 是新西兰奥克兰大学的Peter Gutmann先生花费了将近五年时间开发而成的一个加密安全工具包,它基于传统的计算机安全模型,并涉及到一个安全核心,各种抽象化了的对象位于核心之上。利用此加密库不同   层次的接口,可以很容易地为各种应用系统提供安全服务,如加/解密、 数字签名、 认证等。       百度文库 Cryptlib文档链接 http://wenku.baidu.com/view/ff79c5254b35eefdc8d333ad.html......

阅读全文(1962) | 评论:0

[译文]三重缓冲:为什么我们爱它(2010-11-25 17:35:00)

摘要:文章来源:http://www.anandtech.com/video/showdoc.aspx?i=3591&p=1
文章标题:Triple Buffering: Why We Love It
文章作者:Derek Wilson
文章时间:2009年6月26日

引子

我们往往不愿过多讨论哪些选项在游戏中应该开启。相反,我们往往把重点放在我们的评测内容上。老实说,我们对玩游戏的建议设置与我们的评测设置非常相似,除了一个非常重要的选项:三重缓冲(这同时意味着开启垂直同步V-sync )。虽然这不是一个所有的游戏都有的选项——但它真的很必要要。我们现在来说为什么要开启三重缓冲以及为什么开发商应该支持它。

对大多数游戏玩家来说,当涉及到任何关于垂直同步(V-sync)的时候 ,都会在驱动程序或游戏中关闭它。事实上,我们做评测时也会这样做,因为它使我们更清楚地看到游戏的真实性能。而那些喜欢打开垂直同步的玩家,则是为了避免在某些情况下发生视觉“撕裂”效果。

我们想尝试一些不同的写作方式。下文中将包括两个投票调查,首页以及文章的末尾。第一个调查报告的目的反馈我们的读者对垂直同步、双重与三重缓冲的了解程度。


这个投票结果取之于2009年6月27日下午5点

看完正文后后,我们的读者可以参与另一个投票,其目的是本文对读者的影响是否会左右将来的游戏设置。

首先将是审视一下双重缓冲和垂直同步的概念,然后我们会谈论三重缓冲。对于那些执着于细节的读者(需要更多的有说服力的证据),我们将提供丰富的插图更深入的剖析每种方法。


什么是双重缓冲,垂直同步和三重缓冲?

当电脑需要在显示器上显示东西时,它按照它的想法画一幅需要显示的图像(我们称之为缓冲区Buffer)并传输给显示器。在过去,只有一个缓冲区并不断的被电脑绘制和发送给显示器。这种做法有一些优势,但也有非常大的缺点。最值得注意的是,当物体在屏幕上进行了更新,他们往往会导致闪烁。
......

阅读全文(4550) | 评论:4

将CHAR转换成BYTE关键代码(2010-11-23 09:23:00)

摘要:BYTE Hex2Byte(TCHAR cHex)
 {
       if(cHex >= _T('0')
          && cHex <= _T('9'))
      {
             return (BYTE)(cHex- _T('0'));
      }
      else if(cHex >= _T('A')
         && cHex <= _T('F'))
     {
            return cHex - _T('A') + 10;
     }
         return 0xFF;
 }......

阅读全文(3968) | 评论:1

VC修改系统时间代码(2010-11-15 14:55:00)

摘要:COleDateTime tm; // 
SYSTEMTIME st;
CString strTime; //此处的时间格式可以参考MSDN关于ParserDateTime的参数说明 // year, month, day , hour, minute, second为年月日 时分秒(int型)
strTime.Format(_T("%d-%d-%d %d:%d:%d"),  year,
month,
day,
hour,
minute,
second
); tm.ParseDateTime(strTime); //转换为COleDtaTime时间
tm.GetAsSystemTime(st); // 获取SYSTEMTIME时间
SetLocalTime(&st);//设置系统时间......

阅读全文(6752) | 评论:0

VC动态自定义桌面背景(关键代码)(2010-11-14 11:27:00)

摘要:// VS2005 //head file #include <wininet.h>
#include<shlobj.h>   // define IActiveDesktop* m_pADesktop;   /////////////////////////////////// // init com env HRESULT hr;
CoInitialize(NULL); m_pADesktop = NULL;
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&m_pADesktop); if (FAILED(hr))
{
         return FALSE; }   CstringArray m_strArr; /// 图片路径 CString strPath; for(int i=0; i<10; ++i) {         strPath.Format(_T("%d.bmp"), i); // 0.bmp, 1.bmp  and so on, for test         m_str.Add(strPath); }   SetTimer(1, 5000, NULL); //每5s更换一次桌布 ////////////////////////////////////////////////////////////   // /// key code   //// HRESULT hr; // for test,在定时器中,间隔指定时间,设置桌布 OnTimer(UINT_PTR nIDEvent) static int index =......

阅读全文(3002) | 评论:0

VC F1建弹出打开帮组文档!代码(2010-11-02 19:22:00)

摘要://代码就不加注释了 一看就懂的了 ^_^  BOOL CXXXXXXXXDlg::PreTranslateMessage(LPMSG lpmsg) {
          BOOL bHandleNow = FALSE;  switch (lpmsg->message)
 {
 case WM_KEYDOWN:
         switch (lpmsg->wParam)
        {
         case VK_F1:
           {
                // for F1 popup help documents follow language option 
                TCHAR szFilePath[MAX_PATH];
                memset(szFilePath,0x00,MAX_PATH);
    &nb......

阅读全文(2979) | 评论:0

一些超级有用的链接(不看肯定后悔!)(2010-10-26 11:20:00)

摘要:我常去的编程技术网站[最近更新:2010.09.29][更新总次数:27] 收藏
[序言]
其实大家都可以成为一个厉害的软件开发人员,希望大家通过了解我提供的这些网站找到自己的兴趣爱好,以增强自己的信心。 [建议]
为了能让更多的朋友看到此链接,如果大家是csdn用户,那么请选择[收藏]来收录本文章,以获得csdn的收藏排名.那么就会有更多的朋友看到了.知识是分享的...... [宣传]
80x86汇编小站站长:猪头三(Code_GodFather)
独立开发磁盘性能优化工具: Real-depth Defragmenter(磁盘深度整理者)
软件下载:http://www.x86asm.com/RDD/Index.html [常用搜索引擎]
http://www.google.com/
http://www.bing.com/
http://www.kngine.com/ [汇编语言]
http://www.asmcommunity.net/
http://www.masm32.com/ [Win32 Asm]
http://www.cs.cmu.edu/~ralf/files.html [x86中断列表]
http://www.nasm.us/ [NASM]
http://www.winasm.net/ [Winasm汇编编辑器]
http://x86asm.net/index.html
http://flatassembler.net/ [FASM]
http://www.wasm.ru/ [Windows驱动开发]
http://www.osronline.com [Windows驱动开发新闻组]
http://www.driverdevelop.com [Windows驱动开发论坛]
http://www.microsoft.com/whdc/default.mspx [Windows硬件开发中心]
http://kernelmu......

阅读全文(2409) | 评论:1

微型加密算法(TEA)及其相关变(2010-10-25 21:22:00)

摘要:微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA) 都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。 TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计的。该算法使用 128 位的密钥为 64 位的信息块进行加密,它需要进行 64 轮迭代,尽管作者认为 32 轮已经足够了。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为 δ=「(√5 - 1)231」(也就是程序中的 0×9E3779B9)。之后 TEA 算法被发现存在缺陷,作为回应,设计者提出了一个 TEA 的升级版本——XTEA(有时也被称为“tean”)。XTEA 跟 TEA 使用了相同的简单运算,但它采用了截然不同的顺序,为了阻止密钥表攻击,四个子密钥(在加密过程中,原 128 位的密钥被拆分为 4 个 32 位的子密钥)采用了一种不太正规的方式进行混合,但速度更慢了。 在跟描述 XTEA 算法的同一份报告中,还介绍了另外一种被称为 Block TEA 算法的变种,它可以对 32 位大小任意倍数的变量块进行操作。该算法将 XTEA 轮循函数依次应用于块中的每个字,并且将它附加于它的邻字。该操作重复多少轮依赖于块的大小,但至少需要 6 轮。该方法的优势在于它无需操作模式(CBC,OFB,CFB 等),密钥可直接用于信息。对于长的信息它可能比 XTEA 更有效率。 在 1998 年,Markku-Juhani Saarinen 给出了一个可有效攻击 Block TEA 算法的代码,但之后很快 David J. Wheeler 和 Roger M. Needham 就给出了 Block TEA 算法的修订版,这个算法被称为 XXTEA。XXTEA 使用跟 Block TEA 相似的结构,但在处理块中每个字时利用了相邻字。它利用一个更复杂的 MX 函数代替了 XTEA 轮循函数,MX 使用 2 个输入量。 XXTEA算法在加密、解密时需要提供给算法一个自己设计的密码本,此密码本必须严密保护,不可对外泄露,可以是任意字符,甚至可以是中文。 ......

阅读全文(2438) | 评论:0

C++0x FAQ - 下一代 ISO C++ 标准(2010-10-24 15:42:00)

摘要:C++0x FAQ - 下一代 ISO C++ 标准   下面为上述链接部分内容,详细内容请直接跳至该链接!!!!!!!!!!!!!!!!!!!!!!!!!! 问题列表 最高一层的问题 你是怎么理解C++0x的? C++0x什么时候可以变成一个正式的标准? 什么时候编译器会实现C++0x? 什么时候会有一个可用的新标准库? C++0x会提供哪些新的语言特性?(一个列表) 参考下面的问题 C++0x会提供哪些新的标准库? (一个列表)参考 下面的问题 C++0x努力的目标是什么? 有哪些特殊的目标指引着委员会? 我在哪里可以找到委员会的报告? 我在哪里可以找到C++0x的学术或技术论文? (一个列表) 在哪里我可以阅读更多关于C++0x的内容? (一个列表) 存在有关C++0x的视频吗?(一个列表) C++0x难学吗? 委员会是如何运作的? 委员会有哪些人组成? C++0x的特性会以怎样的顺序实现? 将会有一个C++1x吗? “concepts”怎么了? 存在你不喜欢的特性吗? 关于独立语言特性的问题: __cplusplus 对齐 属性 原子操作 auto(从初始化器中推理型别) C99的特性 enum class (作用域的并且更强类型的枚举) 复制并重新抛出异常 常量表达式 (由constexpr产生和确保) decltype 默认的或删除的函数 (对默认行为的控制) 代理构造器 并行的动态初始与销毁 显示转换操作符 扩展的整数类型 外部模板 for语句,见在范围上使用for语句 后置返回型别语法 (扩展的函数声明语法) 类成员的初始化器 继承的构造器 初始化器列表 (统一且一致的初始化) lambda表达式 局部类作为模板参数 long long 整数 (至少有64位) 内存模型 移动语义,见右值引用 内联的名字空间 阻止缩小 空指针 (nullptr) PODs (广义的) 在范围上使用for语句 原始字符串字面值 右尖括号 右值引用 简单SFINAE规则 静态(编译时)断言 ( static_assert ) 模板别名 模板的typedef,参看模板别名 线程本地存储 ( thread_local ) Uni......

阅读全文(2678) | 评论:0