<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_World of Silence</title><subtitle type="text">谁说人多就不沉默</subtitle><id>http://feed.cnblogs.com/blog/u/7166/rss</id><updated>2012-05-22T11:46:48Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/7166/rss"/><entry><id>http://www.cnblogs.com/Silence/archive/2012/05/15/2500920.html</id><title type="text">[转载]使用CPU时间戳进行高精度计时</title><summary type="text">使用CPU时间戳进行高精度计时 zhangyan_qd（原作） 关键字 高精度 计时 CPU C++ 使用CPU时间戳进行高精度计时 对关注性能的程序开发人员而言，一个好的计时部件既是益友，也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程，又是一件有力的调试武器，在有经验的程序员手里可以尽快的确定程序的性能瓶颈，或者对不同的算法作出有说服力的性能比较。 在Windows平台下，常用的计时器有两种，一种是timeGetTime多媒体计时器，它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗...</summary><published>2012-05-15T01:25:00Z</published><updated>2012-05-15T01:25:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2012/05/15/2500920.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2012/05/15/2500920.html"/><content type="html">&lt;p&gt;使用CPU时间戳进行高精度计时 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zhangyan_qd（原作） &amp;nbsp; &amp;nbsp; &lt;br /&gt;  &amp;nbsp;  &amp;nbsp;  &lt;br /&gt; 关键字 &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; 高精度 &amp;nbsp; 计时 &amp;nbsp; CPU &amp;nbsp; C++ &amp;nbsp;  &lt;br /&gt;  &amp;nbsp;  &amp;nbsp;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt; 使用CPU时间戳进行高精度计时 &lt;br /&gt;  &lt;br /&gt; 对关注性能的程序开发人员而言，一个好的计时部件既是益友，也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程，又是一件有力的调试武器，在有经验的程序员手里可以尽快的确定程序的性能瓶颈，或者对不同的算法作出有说服力的性能比较。 &lt;br /&gt; 在Windows平台下，常用的计时器有两种，一种是timeGetTime多媒体计时器，它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了。另一种是QueryPerformanceCount计数器，随系统的不同可以提供微秒级的计数。对于实时图形处理、多媒体数据流处理、或者实时系统构造的程序员，善用QueryPerformanceCount/QueryPerformanceFrequency是一项基本功。 &lt;br /&gt; 本文要介绍的，是另一种直接利用Pentium &amp;nbsp; CPU内部时间戳进行计时的高精度计时手段。以下讨论主要得益于《Windows图形编程》一书，第15页－17页，有兴趣的读者可以直接参考该书。关于RDTSC指令的详细讨论，可以参考Intel产品手册。本文仅仅作抛砖之用。 &lt;br /&gt;  &lt;br /&gt; 在Intel &amp;nbsp; Pentium以上级别的CPU中，有一个称为&amp;ldquo;时间戳（Time &amp;nbsp; Stamp）&amp;rdquo;的部件，它以64位无符号整型数的格式，记录了自CPU上电以来所经过的时钟周期数。由于目前的CPU主频都非常高，因此这个部件可以达到纳秒级的计时精度。这个精确性是上述两种方法所无法比拟的。 &lt;br /&gt; 在Pentium以上的CPU中，提供了一条机器指令RDTSC（Read &amp;nbsp; Time &amp;nbsp; Stamp &amp;nbsp; Counter）来读取这个时间戳的数字，并将其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32平台下C++语言保存函数返回值的寄存器，所以我们可以把这条指令看成是一个普通的函数调用。像这样： &lt;br /&gt;  &lt;br /&gt; inline &amp;nbsp; unsigned &amp;nbsp; __int64 &amp;nbsp; GetCycleCount() &lt;br /&gt; { &lt;br /&gt;  &amp;nbsp; __asm &amp;nbsp; RDTSC &lt;br /&gt; } &lt;br /&gt;  &lt;br /&gt; 但是不行，因为RDTSC不被C++的内嵌汇编器直接支持，所以我们要用_emit伪指令直接嵌入该指令的机器码形式0X0F、0X31，如下： &lt;br /&gt;  &lt;br /&gt; inline &amp;nbsp; unsigned &amp;nbsp; __int64 &amp;nbsp; GetCycleCount() &lt;br /&gt; { &lt;br /&gt;  &amp;nbsp; __asm &amp;nbsp; _emit &amp;nbsp; 0x0F &lt;br /&gt;  &amp;nbsp; __asm &amp;nbsp; _emit &amp;nbsp; 0x31 &lt;br /&gt; } &lt;br /&gt;  &lt;br /&gt; 以后在需要计数器的场合，可以像使用普通的Win32 &amp;nbsp; API一样，调用两次GetCycleCount函数，比较两个返回值的差，像这样： &lt;br /&gt;  &lt;br /&gt; unsigned &amp;nbsp; long &amp;nbsp; t; &lt;br /&gt; t &amp;nbsp; = &amp;nbsp; (unsigned &amp;nbsp; long)GetCycleCount(); &lt;br /&gt; //Do &amp;nbsp; Something &amp;nbsp; time-intensive &amp;nbsp; ... &lt;br /&gt; t &amp;nbsp; -= &amp;nbsp; (unsigned &amp;nbsp; long)GetCycleCount(); &lt;br /&gt;  &lt;br /&gt; 《Windows图形编程》第15页编写了一个类，把这个计数器封装起来。有兴趣的读者可以去参考那个类的代码。作者为了更精确的定时，做了一点小小的改进，把执行RDTSC指令的时间，通过连续两次调用GetCycleCount函数计算出来并保存了起来，以后每次计时结束后，都从实际得到的计数中减掉这一小段时间，以得到更准确的计时数字。但我个人觉得这一点点改进意义不大。在我的机器上实测，这条指令大概花掉了几十到100多个周期，在Celeron &amp;nbsp; 800MHz的机器上，这不过是十分之一微秒的时间。对大多数应用来说，这点时间完全可以忽略不计；而对那些确实要精确到纳秒数量级的应用来说，这个补偿也过于粗糙了。 &lt;br /&gt;  &lt;br /&gt; 这个方法的优点是： &lt;br /&gt; 1.高精度。可以直接达到纳秒级的计时精度（在1GHz的CPU上每个时钟周期就是一纳秒），这是其他计时方法所难以企及的。 &lt;br /&gt; 2.成本低。timeGetTime &amp;nbsp; 函数需要链接多媒体库winmm.lib，QueryPerformance* &amp;nbsp; 函数根据MSDN的说明，需要硬件的支持（虽然我还没有见过不支持的机器）和KERNEL库的支持，所以二者都只能在Windows平台下使用（关于DOS平台下的高精度计时问题，可以参考《图形程序开发人员指南》，里面有关于控制定时器8253的详细说明）。但RDTSC指令是一条CPU指令，凡是i386平台下Pentium以上的机器均支持，甚至没有平台的限制（我相信i386版本UNIX和Linux下这个方法同样适用，但没有条件试验），而且函数调用的开销是最小的。 &lt;br /&gt; 3.具有和CPU主频直接对应的速率关系。一个计数相当于1/(CPU主频Hz数)秒，这样只要知道了CPU的主频，可以直接计算出时间。这和QueryPerformanceCount不同，后者需要通过QueryPerformanceFrequency获取当前计数器每秒的计数次数才能换算成时间。 &lt;br /&gt;  &lt;br /&gt; 这个方法的缺点是： &lt;br /&gt; 1.现有的C/C++编译器多数不直接支持使用RDTSC指令，需要用直接嵌入机器码的方式编程，比较麻烦。 &lt;br /&gt; 2.数据抖动比较厉害。其实对任何计量手段而言，精度和稳定性永远是一对矛盾。如果用低精度的timeGetTime来计时，基本上每次计时的结果都是相同的；而RDTSC指令每次结果都不一样，经常有几百甚至上千的差距。这是这种方法高精度本身固有的矛盾。 &lt;br /&gt;  &lt;br /&gt; 关于这个方法计时的最大长度，我们可以简单的用下列公式计算： &lt;br /&gt;  &lt;br /&gt; 自CPU上电以来的秒数 &amp;nbsp; = &amp;nbsp; RDTSC读出的周期数 &amp;nbsp; / &amp;nbsp; CPU主频速率（Hz） &lt;br /&gt;  &lt;br /&gt; 64位无符号整数所能表达的最大数字是1.8&amp;times;10^19，在我的Celeron &amp;nbsp; 800上可以计时大约700年（书中说可以在200MHz的Pentium上计时117年，这个数字不知道是怎么得出来的，与我的计算有出入）。无论如何，我们大可不必关心溢出的问题。 &lt;br /&gt;  &lt;br /&gt; 下面是几个小例子，简要比较了三种计时方法的用法与精度 &lt;br /&gt; //Timer1.cpp &amp;nbsp; 使用了RDTSC指令的Timer类//KTimer类的定义可以参见《Windows图形编程》P15 &lt;br /&gt; //编译行：CL &amp;nbsp; Timer1.cpp &amp;nbsp; /link &amp;nbsp; USER32.lib &lt;br /&gt; #include &amp;nbsp;  &amp;lt;stdio.h&amp;gt;  &lt;br /&gt; #include &amp;nbsp;  "KTimer.h " &lt;br /&gt; main() &lt;br /&gt; { &lt;br /&gt;  &amp;nbsp; unsigned &amp;nbsp; t; &lt;br /&gt;  &amp;nbsp; KTimer &amp;nbsp; timer; &lt;br /&gt;  &amp;nbsp; timer.Start(); &lt;br /&gt;  &amp;nbsp; Sleep(1000); &lt;br /&gt;  &amp;nbsp; t &amp;nbsp; = &amp;nbsp; timer.Stop(); &lt;br /&gt;  &amp;nbsp; printf( "Lasting &amp;nbsp; Time: &amp;nbsp; %d\n ",t); &lt;br /&gt; } &lt;br /&gt;  &lt;br /&gt; //Timer2.cpp &amp;nbsp; 使用了timeGetTime函数 &lt;br /&gt; //需包含 &amp;lt;mmsys.h&amp;gt; ，但由于Windows头文件错综复杂的关系 &lt;br /&gt; //简单包含 &amp;lt;windows.h&amp;gt; 比较偷懒：） &lt;br /&gt; //编译行：CL &amp;nbsp; timer2.cpp &amp;nbsp; /link &amp;nbsp; winmm.lib &amp;nbsp;  &lt;br /&gt; #include &amp;nbsp;  &amp;lt;windows.h&amp;gt;  &lt;br /&gt; #include &amp;nbsp;  &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;  &lt;br /&gt; main() &lt;br /&gt; { &lt;br /&gt;  &amp;nbsp; DWORD &amp;nbsp; t1, &amp;nbsp; t2; &lt;br /&gt;  &amp;nbsp; t1 &amp;nbsp; = &amp;nbsp; timeGetTime(); &lt;br /&gt;  &amp;nbsp; Sleep(1000); &lt;br /&gt;  &amp;nbsp; t2 &amp;nbsp; = &amp;nbsp; timeGetTime(); &lt;br /&gt;  &amp;nbsp; printf( "Begin &amp;nbsp; Time: &amp;nbsp; %u\n ", &amp;nbsp; t1); &lt;br /&gt;  &amp;nbsp; printf( "End &amp;nbsp; Time: &amp;nbsp; %u\n ", &amp;nbsp; t2); &lt;br /&gt;  &amp;nbsp; printf( "Lasting &amp;nbsp; Time: &amp;nbsp; %u\n ",(t2-t1)); &lt;br /&gt; } &lt;br /&gt;  &lt;br /&gt; //Timer3.cpp &amp;nbsp; 使用了QueryPerformanceCounter函数 &lt;br /&gt; //编译行：CL &amp;nbsp; timer3.cpp &amp;nbsp; /link &amp;nbsp; KERNEl32.lib &lt;br /&gt; #include &amp;nbsp;  &amp;lt;windows.h&amp;gt;  &lt;br /&gt; #include &amp;nbsp;  &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;  &lt;br /&gt; main() &lt;br /&gt; { &lt;br /&gt;  &amp;nbsp; LARGE_INTEGER &amp;nbsp; t1, &amp;nbsp; t2, &amp;nbsp; tc; &lt;br /&gt;  &amp;nbsp; QueryPerformanceFrequency(&amp;amp;tc); &lt;br /&gt;  &amp;nbsp; printf( "Frequency: &amp;nbsp; %u\n ", &amp;nbsp; tc.QuadPart); &lt;br /&gt;  &amp;nbsp; QueryPerformanceCounter(&amp;amp;t1); &lt;br /&gt;  &amp;nbsp; Sleep(1000); &lt;br /&gt;  &amp;nbsp; QueryPerformanceCounter(&amp;amp;t2); &lt;br /&gt;  &amp;nbsp; printf( "Begin &amp;nbsp; Time: &amp;nbsp; %u\n ", &amp;nbsp; t1.QuadPart); &lt;br /&gt;  &amp;nbsp; printf( "End &amp;nbsp; Time: &amp;nbsp; %u\n ", &amp;nbsp; t2.QuadPart); &lt;br /&gt;  &amp;nbsp; printf( "Lasting &amp;nbsp; Time: &amp;nbsp; %u\n ",( &amp;nbsp; t2.QuadPart- &amp;nbsp; t1.QuadPart)); &lt;br /&gt; } &lt;br /&gt;  &lt;br /&gt; //////////////////////////////////////////////// &lt;br /&gt; //以上三个示例程序都是测试1秒钟休眠所耗费的时间 &lt;br /&gt; file://测试环境：Celeron &amp;nbsp; 800MHz &amp;nbsp; / &amp;nbsp; 256M &amp;nbsp; SDRAM &amp;nbsp;  &amp;nbsp;  &lt;br /&gt; // &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; Windows &amp;nbsp; 2000 &amp;nbsp; Professional &amp;nbsp; SP2 &lt;br /&gt; // &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; Microsoft &amp;nbsp; Visual &amp;nbsp; C++ &amp;nbsp; 6.0 &amp;nbsp; SP5 &lt;br /&gt; //////////////////////////////////////////////// &lt;br /&gt; 以下是Timer1的运行结果，使用的是高精度的RDTSC指令 &lt;br /&gt; Lasting &amp;nbsp; Time: &amp;nbsp; 804586872 &lt;br /&gt;  &lt;br /&gt; 以下是Timer2的运行结果，使用的是最粗糙的timeGetTime &amp;nbsp; API &lt;br /&gt; Begin &amp;nbsp; Time: &amp;nbsp; 20254254 &lt;br /&gt; End &amp;nbsp; Time: &amp;nbsp; 20255255 &lt;br /&gt; Lasting &amp;nbsp; Time: &amp;nbsp; 1001 &lt;br /&gt;  &lt;br /&gt; 以下是Timer3的运行结果，使用的是QueryPerformanceCount &amp;nbsp; API &lt;br /&gt; Frequency: &amp;nbsp; 3579545 &lt;br /&gt; Begin &amp;nbsp; Time: &amp;nbsp; 3804729124 &lt;br /&gt; End &amp;nbsp; Time: &amp;nbsp; 3808298836 &lt;br /&gt; Lasting &amp;nbsp; Time: &amp;nbsp; 3569712 &lt;br /&gt;  &lt;br /&gt; 古人说，触类旁通。从一本介绍图形编程的书上得到一个如此有用的实时处理知识，我感到非常高兴。有美不敢自专，希望大家和我一样喜欢这个轻便有效的计时器。 &lt;br /&gt;  &lt;br /&gt; 参考资料： &lt;br /&gt; [YUAN &amp;nbsp; 2002]Feng &amp;nbsp; Yuan &amp;nbsp; 著，英宇工作室 &amp;nbsp; 译，Windows图形编程，机械工业出版社，2002.4.，P15-17&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2500920.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2012/05/15/2500920.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2012/05/15/2500892.html</id><title type="text">[转载]CreateWaitableTimer和SetWaitableTimer函数</title><summary type="text">使用定时器的API函数CreateWaitableTimer和SetWaitableTimer来实现了，这对API函数创建的时钟是比较精确的，可以达到100倍的10亿分之一秒,即100纳秒。函数CreateWaitableTimer和SetWaitableTimer声明如下：WINBASEAPI__outHANDLEWINAPICreateWaitableTimerA( __in_opt LPSECURITY_ATTRIBUTES lpTimerAttributes, __in BOOL bManualReset, __in_opt LPCSTR lpTimerName );WINBASEAP</summary><published>2012-05-15T00:58:00Z</published><updated>2012-05-15T00:58:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2012/05/15/2500892.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2012/05/15/2500892.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: 10.5pt;"&gt;使用定时器的&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;API&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;函数&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;CreateWaitableTimer&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;和&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;SetWaitableTimer&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;来实现了，这对&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;API&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;函数创建的时钟是比较精确的，可以达到&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;100&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;倍的&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;亿分之一秒,即100纳秒。&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;函数&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;CreateWaitableTimer&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;和&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;SetWaitableTimer&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;声明如下：&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;WINBASEAPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;__out&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;HANDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;WINAPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;CreateWaitableTimerA(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in_opt LPSECURITY_ATTRIBUTES lpTimerAttributes,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL bManualReset,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in_opt LPCSTR lpTimerName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;WINBASEAPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;__out&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;HANDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;WINAPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;CreateWaitableTimerW(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in_opt LPSECURITY_ATTRIBUTES lpTimerAttributes,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL bManualReset,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in_opt LPCWSTR lpTimerName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#ifdef UNICODE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#define CreateWaitableTimer&amp;nbsp;CreateWaitableTimerW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#define CreateWaitableTimer&amp;nbsp;CreateWaitableTimerA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#endif // !UNICODE&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;WINBASEAPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;BOOL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;WINAPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;SetWaitableTimer(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANDLE hTimer,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const LARGE_INTEGER *lpDueTime,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG lPeriod,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in_opt PTIMERAPCROUTINE pfnCompletionRoutine,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in_opt LPVOID lpArgToCompletionRoutine,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL fResume&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;lpTimerAttributes&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是设置定时器的属性。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;bManualReset&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是是否手动复位。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;lpTimerName&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是定时器的名称。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;hTimer&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是定时器的句柄。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;lpDueTime&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是设置定时器时间间隔，当设置为正值是绝对时间；当设置为负数是相对时间。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;lPeriod&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是周期。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;pfnCompletionRoutine&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是设置回调函数。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;lpArgToCompletionRoutine&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是传送给回调函数的参数。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: 10.5pt;"&gt;fResume&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt;"&gt;是设置系统是否自动恢复。&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;调用函数的例子如下：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#001&amp;nbsp;//&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;创建定时器&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#002&amp;nbsp;&amp;nbsp;//&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;蔡军生&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;&amp;nbsp;2007/11/06 QQ:9073204 &lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;深圳&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#003&amp;nbsp;&amp;nbsp;int CreateTestTimer(void)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#004&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANDLE hTimer = NULL;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LARGE_INTEGER liDueTime;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#007&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#008&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;设置相对时间为&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;秒。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#009&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liDueTime.QuadPart = -100000000;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#010&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;创建定时器。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 10.5pt;"&gt;#012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hTimer = CreateWaitableTimer(NULL, TRUE, _T("TestWaitableTimer"));&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#013&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!hTimer)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#015&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#016&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#017&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutputDebugString(_T("10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;秒定时器&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;/r/n"));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#019&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#020&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;设置&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;秒钟。&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 10.5pt;"&gt;#021&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!SetWaitableTimer(hTimer, &amp;amp;liDueTime, 0, NULL, NULL, 0))&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#022&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#023&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#024&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseHandle(hTimer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#025&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#026&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#027&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#028&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;等定时器有信号。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#029&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (WaitForSingleObject(hTimer, INFINITE) != WAIT_OBJECT_0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#030&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#031&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutputDebugString(_T("10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;秒定时器出错了&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;/r/n"));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#032&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#033&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseHandle(hTimer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#034&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#035&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#036&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#037&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#038&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;秒钟到达。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#039&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutputDebugString(_T("10&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;秒定时器到了&lt;/span&gt;&lt;span style="font-size: 10.5pt;"&gt;/r/n"));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#040&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#041&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#042&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#043&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseHandle(hTimer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#044&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10.5pt;"&gt;#045&amp;nbsp;&amp;nbsp;}&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2500892.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2012/05/15/2500892.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2012/05/13/2498633.html</id><title type="text">[转载]VC实现CPU速度自测</title><summary type="text">简单说下原理：在两个固定的时刻测出当前CPU的时钟计数，用这个计数除以间隔的时间就得到相应的频率值了。需要说明的是为了获得当前CPU的内侧时钟值，要采用内嵌汇编的方式得到，这就要将当前的测试进程的优先级设定的较高，故采用了实时进程优先级：REALTIME_PRIORITY_CLASS,该优先级别高，并且有这种权限的进程中的所有线程要比其他进程中的所有线程的级别都高。12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626</summary><published>2012-05-13T15:08:00Z</published><updated>2012-05-13T15:08:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2012/05/13/2498633.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2012/05/13/2498633.html"/><content type="html">&lt;div class="postentry"&gt;&lt;p&gt;简单说下原理：&lt;br /&gt;在两个固定的时刻测出当前CPU的时钟计数，用这个计数除以间隔的时间就得到相应的频率值了。&lt;br /&gt;需要说明的是为了获得当前CPU的内侧时钟值，要采用内嵌汇编的方式得到，这就要将当前的测试进程的优先级设定的较高，故采用了实时进程优先级：REALTIME_PRIORITY_CLASS,该优先级别高，并且有这种权限的进程中的所有线程要比其他进程中的所有线程的级别都高。&lt;/p&gt;&lt;div class="wp_codebox"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr id="p2291"&gt;&lt;td class="line_numbers"&gt;1&lt;br/&gt;2&lt;br/&gt;3&lt;br/&gt;4&lt;br/&gt;5&lt;br/&gt;6&lt;br/&gt;7&lt;br/&gt;8&lt;br/&gt;9&lt;br/&gt;10&lt;br/&gt;11&lt;br/&gt;12&lt;br/&gt;13&lt;br/&gt;14&lt;br/&gt;15&lt;br/&gt;16&lt;br/&gt;17&lt;br/&gt;18&lt;br/&gt;19&lt;br/&gt;20&lt;br/&gt;21&lt;br/&gt;22&lt;br/&gt;23&lt;br/&gt;24&lt;br/&gt;25&lt;br/&gt;26&lt;br/&gt;27&lt;br/&gt;28&lt;br/&gt;29&lt;br/&gt;30&lt;br/&gt;31&lt;br/&gt;32&lt;br/&gt;33&lt;br/&gt;34&lt;br/&gt;35&lt;br/&gt;36&lt;br/&gt;37&lt;br/&gt;38&lt;br/&gt;39&lt;br/&gt;40&lt;br/&gt;41&lt;br/&gt;42&lt;br/&gt;43&lt;br/&gt;44&lt;br/&gt;45&lt;br/&gt;46&lt;br/&gt;47&lt;br/&gt;48&lt;br/&gt;49&lt;br/&gt;50&lt;br/&gt;51&lt;br/&gt;52&lt;br/&gt;53&lt;br/&gt;54&lt;br/&gt;55&lt;br/&gt;56&lt;br/&gt;57&lt;br/&gt;58&lt;br/&gt;59&lt;br/&gt;60&lt;br/&gt;61&lt;br/&gt;62&lt;br/&gt;63&lt;br/&gt;64&lt;br/&gt;65&lt;br/&gt;66&lt;br/&gt;67&lt;br/&gt;68&lt;br/&gt;69&lt;br/&gt;70&lt;br/&gt;71&lt;br/&gt;72&lt;br/&gt;73&lt;br/&gt;74&lt;br/&gt;75&lt;br/&gt;76&lt;br/&gt;77&lt;br/&gt;78&lt;br/&gt;79&lt;br/&gt;80&lt;br/&gt;81&lt;br/&gt;82&lt;br/&gt;83&lt;br/&gt;84&lt;br/&gt;85&lt;br/&gt;86&lt;br/&gt;87&lt;br/&gt;88&lt;br/&gt;89&lt;br/&gt;90&lt;br/&gt;91&lt;br/&gt;92&lt;br/&gt;93&lt;br/&gt;94&lt;br/&gt;95&lt;br/&gt;96&lt;br/&gt;97&lt;br/&gt;&lt;/td&gt;&lt;td id="p229code1" class="code"&gt;用VC实现CPU速度自测&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;span style="color: #339900;"&gt;#include &amp;lt;windows.h&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #339900;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; std&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #666666;"&gt;//测试速度的子程序&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt; MeasureSpeed&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; main&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000dd;"&gt;cout&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;"您的CPU的运行速度是: "&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; MeasureSpeed&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;"MHz"&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000dd;"&gt;system&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;"pause"&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt; MeasureSpeed&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;       ticks&lt;span style="color: #008080;"&gt;;&lt;/span&gt;          &lt;span style="color: #666666;"&gt;//先是存放计时次数，后存放固定时间间隔值&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;       stock0, stock1&lt;span style="color: #008080;"&gt;;&lt;/span&gt; &lt;span style="color: #666666;"&gt;//存放两固定时刻的CPU内置时钟值，值的含意为计数&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;       cycles&lt;span style="color: #008080;"&gt;;&lt;/span&gt;         &lt;span style="color: #666666;"&gt;//存放内置时钟值之差，好固定时段的计数值 &lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;       freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;,&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;,&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;,&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;,&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt; &lt;span style="color: #666666;"&gt;//存放频率，为了提高精度，采用了相邻的测的5个频率的平均值&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;       nums &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;       &lt;span style="color: #666666;"&gt;//循环次数&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;       total &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;      &lt;span style="color: #666666;"&gt;//存放频率之和&lt;/span&gt;&lt;br/&gt;    LARGE_INTEGER       t0,t1&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    LARGE_INTEGER       countfreq&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #666666;"&gt;//返回高精度的计数频率，即每秒多少次;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #000040;"&gt;!&lt;/span&gt;QueryPerformanceFrequency&lt;span style="color: #008000;"&gt;(&lt;/span&gt; &lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;countfreq &lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;0.0f&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #666666;"&gt;//返回特定进程的优先级;&lt;/span&gt;&lt;br/&gt;    DWORD priority_class &lt;span style="color: #000080;"&gt;=&lt;/span&gt; GetPriorityClass&lt;span style="color: #008000;"&gt;(&lt;/span&gt;GetCurrentProcess&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #666666;"&gt;//返回特定线程的优先级;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;   thread_priority &lt;span style="color: #000080;"&gt;=&lt;/span&gt; GetThreadPriority&lt;span style="color: #008000;"&gt;(&lt;/span&gt;GetCurrentThread&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #666666;"&gt;//将当前进程设成实时进程;&lt;/span&gt;&lt;br/&gt;    SetPriorityClass&lt;span style="color: #008000;"&gt;(&lt;/span&gt;GetCurrentProcess&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;, REALTIME_PRIORITY_CLASS&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #666666;"&gt;//设定线程优先级;&lt;/span&gt;&lt;br/&gt;  SetThreadPriority&lt;span style="color: #008000;"&gt;(&lt;/span&gt;GetCurrentThread&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;, THREAD_PRIORITY_TIME_CRITICAL&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;do&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;        nums&lt;span style="color: #000040;"&gt;++&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;4&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;3&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;3&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #666666;"&gt;//返回高精度计数的值;&lt;/span&gt;&lt;br/&gt;        QueryPerformanceCounter&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;t0&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        t1.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; t0.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        t1.&lt;span style="color: #007788;"&gt;HighPart&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; t0.&lt;span style="color: #007788;"&gt;HighPart&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #666666;"&gt;//这句中的50和后面相同语句中的1000是一个经验值，起的作用是控制时间间隔，可以&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #666666;"&gt;//调节这两个值来实现最佳时间间隔。&lt;/span&gt;&lt;br/&gt; &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;t1.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt; &lt;span style="color: #000040;"&gt;-&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;t0.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;10&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;            QueryPerformanceCounter&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;t1&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;        _asm&lt;br/&gt;        &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;rdtsc  &lt;span style="color: #666666;"&gt;//启动读取CPU的内置时钟，其返回值是个64位的整数，高32到EDX，低32到EAX里&lt;/span&gt;&lt;br/&gt; mov stock0, EAX &lt;span style="color: #666666;"&gt;//高位部份在短暂时间内是不会有变化的，故无需读出对比&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt; t0.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; t1.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;        &lt;span style="color: #666666;"&gt;// 重置初始时刻&lt;/span&gt;&lt;br/&gt;  t0.&lt;span style="color: #007788;"&gt;HighPart&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; t1.&lt;span style="color: #007788;"&gt;HighPart&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt; &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;t1.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;t0.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1000&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;            QueryPerformanceCounter&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;t1&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;        _asm&lt;br/&gt;        &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;            rdtsc&lt;br/&gt;            mov  stock1, EAX&lt;br/&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;        cycles &lt;span style="color: #000080;"&gt;=&lt;/span&gt; stock1 &lt;span style="color: #000040;"&gt;-&lt;/span&gt; stock0&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        ticks &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt; t1.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt; &lt;span style="color: #000040;"&gt;-&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;unsigned&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt; t0.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        ticks &lt;span style="color: #000080;"&gt;=&lt;/span&gt; ticks &lt;span style="color: #000040;"&gt;*&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1000000&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;        ticks &lt;span style="color: #000080;"&gt;=&lt;/span&gt; ticks &lt;span style="color: #000040;"&gt;/&lt;/span&gt; countfreq.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;   &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt; ticks &lt;span style="color: #000040;"&gt;%&lt;/span&gt; countfreq.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt; countfreq.&lt;span style="color: #007788;"&gt;LowPart&lt;/span&gt;&lt;span style="color: #000040;"&gt;/&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;            ticks&lt;span style="color: #000040;"&gt;++&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;            &lt;span style="color: #666666;"&gt;// 使数据收敛&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000080;"&gt;=&lt;/span&gt; cycles &lt;span style="color: #000040;"&gt;/&lt;/span&gt; ticks&lt;span style="color: #008080;"&gt;;&lt;/span&gt;    &lt;span style="color: #666666;"&gt;// 求出频率，单位：MHz&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt; cycles&lt;span style="color: #000040;"&gt;%&lt;/span&gt;ticks &lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt; ticks&lt;span style="color: #000040;"&gt;/&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;           freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #000040;"&gt;++&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;             &lt;span style="color: #666666;"&gt;// 使数据收敛&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;   total &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;+&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;+&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;+&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;3&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;+&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;4&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;}&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;nums &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000040;"&gt;||&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;nums &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;100&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000040;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;abs&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;-&lt;/span&gt; total&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;             &lt;span style="color: #000040;"&gt;||&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;abs&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #000040;"&gt;-&lt;/span&gt;total&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000040;"&gt;||&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;abs&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;-&lt;/span&gt; total&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt; &lt;span style="color: #000040;"&gt;||&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;abs&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;3&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt;&lt;span style="color: #000040;"&gt;-&lt;/span&gt;total&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000040;"&gt;||&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;abs&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt; freq&lt;span style="color: #008000;"&gt;[&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;4&lt;/span&gt;&lt;span style="color: #008000;"&gt;]&lt;/span&gt; &lt;span style="color: #000040;"&gt;-&lt;/span&gt; total&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #666666;"&gt;//条件循环，以确保循环不少于5次，在大于5次后确保达到一定的精度后退出&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; &lt;span style="color: #008000;"&gt;(&lt;/span&gt; total&lt;span style="color: #000040;"&gt;/&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;  &lt;span style="color: #000040;"&gt;!&lt;/span&gt;&lt;span style="color: #000080;"&gt;=&lt;/span&gt;  &lt;span style="color: #008000;"&gt;(&lt;/span&gt; total &lt;span style="color: #000040;"&gt;+&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #000040;"&gt;/&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt; &lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;br/&gt;        total &lt;span style="color: #000040;"&gt;++&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;               &lt;span style="color: #666666;"&gt;// 使数据收敛&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #666666;"&gt;// 恢复进程及线程的优先级别;&lt;/span&gt;&lt;br/&gt;    SetPriorityClass&lt;span style="color: #008000;"&gt;(&lt;/span&gt;GetCurrentProcess&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;, priority_class&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    SetThreadPriority&lt;span style="color: #008000;"&gt;(&lt;/span&gt;GetCurrentThread&lt;span style="color: #008000;"&gt;(&lt;/span&gt;&lt;span style="color: #008000;"&gt;)&lt;/span&gt;, thread_priority&lt;span style="color: #008000;"&gt;)&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #008000;"&gt;(&lt;/span&gt;total&lt;span style="color: #008000;"&gt;)&lt;/span&gt; &lt;span style="color: #000040;"&gt;/&lt;/span&gt; &lt;span style="color: #800080;"&gt;5.0f&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;上面的程序，可以做一定修改，循环中的控制语句也可以作适当的调整，来提高测试精度。调试环境VC6.0/XP&lt;/p&gt;&lt;p&gt;转载地址：&lt;a href="http://blog.liuyixi.com/2009/07/02/vcshixiancpusuduzice/" target="_blank"&gt;http://blog.liuyixi.com/2009/07/02/vcshixiancpusuduzice/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2498633.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2012/05/13/2498633.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2012/01/19/2327595.html</id><title type="text">自动刷新查询火车票脚本</title><summary type="text">本脚本来自网络，博主已验证，确实可以用。关键是想买票得勤劳，建议6点爬起来，开浏览器登录，等到放票时间第一时间买考虑到网络不通和不停手刷的双重折磨，写个脚本稍微减轻下这种痛苦脚本目的：1、session保持在线，不会下线，这样6点系统开登陆，刷到出票；2、有新票提醒；3、可以最小化浏览器干其他事情；1、用Chrome（下载地址在这里：http://dl.pconline.com.cn/download/51614.html）浏览器,2、到https://dynamic.12306.cn/otsweb/登录3、点击 车票预订4、填好出发地、目的地、出发日期、出发时间，然后右键单击出发车次这个文本</summary><published>2012-01-19T11:56:00Z</published><updated>2012-01-19T11:56:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2012/01/19/2327595.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2012/01/19/2327595.html"/><content type="html">&lt;div&gt;&lt;span&gt;本脚本来自网络，博主已验证，确实可以用。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;关键是想买票得勤劳，建议6点爬起来，开浏览器登录，等到放票时间第一时间买&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;考虑到网络不通和不停手刷的双重折磨，写个脚本稍微减轻下这种痛苦&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;脚本目的：&lt;/span&gt;&lt;/p&gt;&lt;div&gt;1、session保持在线，不会下线，这样6点系统开登陆，刷到出票；&lt;/div&gt;&lt;div&gt;2、有新票提醒；&lt;/div&gt;&lt;div&gt;3、可以最小化浏览器干其他事情；&lt;br /&gt;&lt;br /&gt;1、用Chrome（下载地址在这里：&lt;a href="http://dl.pconline.com.cn/download/51614.html" target="_blank"&gt;http://dl.pconline.com.cn/download/51614.html&lt;/a&gt;）浏览器,&lt;/div&gt;&lt;div&gt;2、到&lt;a href="https://dynamic.12306.cn/otsweb/" target="_blank"&gt;https://dynamic.12306.cn/otsweb/&lt;/a&gt;登录&lt;/div&gt;&lt;div&gt;3、点击 &amp;nbsp;车票预订&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span&gt;4、填好出发地、目的地、出发日期、出发时间，然后右键单击&lt;/span&gt;&lt;span style="color: #f00000;"&gt;出发车次&lt;/span&gt;&lt;span style="color: #545454;"&gt;这个文本框-&amp;gt;选择-&lt;/span&gt;&lt;span style="color: #f00000;"&gt;审查元素&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #f00000;"&gt;5、然后在控制台上，input的节点，选择add attribute（插入属性），插入以下脚本：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #f00000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;添加注入脚本内容：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;onclick="mark=1;$(this).after('by UING,刷票并保持在线脚本1.0');kkk=function(){if(mark==0)return;mark++;$('#gridbox .row20px tr').find('td').each(function(){if($(this).index()==10) {if($(this).text()!='无' &amp;amp;&amp;amp; $(this).text()!='--' &amp;amp;&amp;amp; $(this).text().indexOf('次')==-1){alert('有硬卧票了！'); mark=0;}else{$(this).html('检测'+mark+'次')}}});$('#submitQuery').click(); setTimeout(kkk,2000)};kkk();"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;6、回到页面，点下刚才编辑的文本框，触发JS事件，开始执行注入脚本。&lt;br /&gt;&lt;br /&gt;注&lt;br /&gt;&lt;br /&gt;1、$(this).index()==10 两次出现的10是第十列硬卧，按页面顺序软卧、软座的话改成9、11，以此类推&lt;br /&gt;&lt;br /&gt;2、有票后弹窗并停止执行&lt;br /&gt;&lt;br /&gt;3、懂jq的可以自行修改，这里仅抛砖引玉&lt;br /&gt;&lt;br /&gt;4、放票时间参考12306首页，（&lt;a href="http://www.12306.cn/mormhweb/zxdt/tlxw_tdbtz19.html" target="_blank"&gt;http://www.12306.cn/mormhweb/zxdt/tlxw_tdbtz19.html&lt;/a&gt;）全天整点前后有少量票放出&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-------用这段代码，有卧铺票时候直接点击购买，不弹窗提示&lt;br /&gt;&lt;br /&gt;onclick="mark=1;$(this).after('by UING,刷票并保持在线脚本1.0');kkk=function(){if(mark==0)return;mark++;$('#gridbox .row20px tr').find('td').each(function(){if($(this).index()==10) {if($(this).text()!='无' &amp;amp;&amp;amp; $(this).text()!='--' &amp;amp;&amp;amp; $(this).text().indexOf('次')==-1) {mark=0;$(this).parent().find('.yuding_u_over').click();}else{$(this).html(' 检测'+mark+'次 ')}}});$('#submitQuery').click();setTimeout(kkk,2000)};kkk();"&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;===========================================================&lt;/div&gt;&lt;div&gt;下面是另一种方式。&lt;/div&gt;&lt;div&gt;技术宅范的&lt;br /&gt;&lt;a href="https://github.com/zzdhidden/12306" rel="nofollow" target="_blank"&gt;https://github.com/zzdhidden/12306&lt;/a&gt; &lt;br /&gt;需使用谷歌浏览器。 &lt;br /&gt;安装该插件。 &lt;br /&gt;&lt;a href="https://github.com/zzdhidden/12306/raw/master/12306BookingAssistant.user.js" rel="nofollow" target="_blank"&gt;https://github.com/zzdhidden/12306/raw/master/12306BookingAssistant.user.js&lt;/a&gt; &lt;br /&gt;登陆 &lt;a href="https://dynamic.12306.cn/otsweb/" rel="nofollow" target="_blank"&gt;https://dynamic.12306.cn/otsweb/&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2327595.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2012/01/19/2327595.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2011/12/10/2283127.html</id><title type="text">北欧国旗的十字架</title><summary type="text">北欧国旗的十字架一一五七年 ， 瑞典与芬兰发生战争，丹麦、冰岛、挪威也席卷进去。 当时埃里克王向神祷告 ，结果奇迹发生了， 蓝天上光彩奕奕闪烁着十字架光芒（实际是自然天象），十字架对基督教来说象征着仁爱。于是他们认为这是上帝的指示。于是北欧五国化干戈为玉帛，不仅宣誓结 盟，而且五国都把国旗添上了个十字架。这就是北欧五国十字国旗的由来。 详细讲解 首先，北欧五国是指芬兰、瑞典、挪威、丹麦和冰岛。 第二，北欧五国都带国旗都有十字架的原因及过其含义。 北欧五国国旗选用基督教十字架为主要图案。在北欧历史上，最早使用基督教十字架为国旗图案的是丹麦，此后其他北欧国家均采用此法。 芬兰 Finlan...</summary><published>2011-12-10T03:12:00Z</published><updated>2011-12-10T03:12:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2011/12/10/2283127.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2011/12/10/2283127.html"/><content type="html">&lt;p&gt;北欧国旗的十字架&lt;/p&gt;&lt;p&gt;一一五七年 ， 瑞典与芬兰发生战争，丹麦、冰岛、挪威也席卷进去。 当时埃里克王向神祷告 ，结果奇迹发生了， 蓝天上光彩奕奕闪烁着十字架光芒（实际是自然天象），十字架对基督教来说象征着仁爱。于是他们认为这是上帝的指示。于是北欧五国化干戈为玉帛，不仅宣誓结 盟，而且五国都把国旗添上了个十字架。这就是北欧五国十字国旗的由来。&lt;br /&gt; &lt;br /&gt; 详细讲解&lt;br /&gt; &lt;br /&gt; 首先，北欧五国是指芬兰、瑞典、挪威、丹麦和冰岛。&lt;br /&gt; 第二，北欧五国都带国旗都有十字架的原因及过其含义。&lt;br /&gt; &lt;br /&gt; 北欧五国国旗选用基督教十字架为主要图案。在北欧历史上，最早使用基督教十字架为国旗图案的是丹麦，此后其他北欧国家均采用此法。&lt;br /&gt; &lt;br /&gt; 芬兰 Finland&lt;br /&gt; &lt;br /&gt; 蓝色表示湖泊和天空，白色代表雪，十字代表芬兰是北欧各国的一员，在官方正式场合中，则使用十字中心有只狮子的国旗。&lt;/p&gt;&lt;p align="center"&gt;&lt;a target="_blank"&gt;&lt;img src="http://hiphotos.baidu.com/%B1%F9%BA%D3%D1%A9%D4%AD/pic/item/1f30e924cb171a3a4c088dae.jpg" alt="按此在新窗口浏览图片" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="center"&gt;&lt;a target="_blank"&gt;&lt;img src="http://hiphotos.baidu.com/%B1%F9%BA%D3%D1%A9%D4%AD/pic/item/b899a9013986dd3d1d9583ae.jpg" alt="按此在新窗口浏览图片" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;br /&gt; 瑞典 Sweden&lt;br /&gt; &lt;br /&gt; 一一五七年瑞典和芬兰发生单争时，艾利克王在向神祷告时，看到蓝天上散发金光的十字架，据说是瑞典国旗的由来，事实上是由古代佛尔昆王朝中的金色十字架，以蓝底为本而设计的。&lt;/p&gt;&lt;p align="center"&gt;&lt;a target="_blank"&gt;&lt;img src="http://hiphotos.baidu.com/%B1%F9%BA%D3%D1%A9%D4%AD/pic/item/4c086e066a1bb940020881ae.jpg" alt="按此在新窗口浏览图片" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;br /&gt; 挪威 Norway&lt;br /&gt; &lt;br /&gt; 挪威与丹麦结盟时以红底白十字为国旗，联邦瓦解后，于是加上蓝色十字，蓝、白、红代表自由、平等、博爱。&lt;/p&gt;&lt;p align="center"&gt;&lt;a target="_blank"&gt;&lt;img src="http://hiphotos.baidu.com/%B1%F9%BA%D3%D1%A9%D4%AD/pic/item/1d950a7b7b86c8cf0ad187ae.jpg" alt="按此在新窗口浏览图片" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;br /&gt; 丹麦 Denmark&lt;br /&gt; &lt;br /&gt; 丹麦的国旗是世界上最古老的国旗，十三世纪初，华德马尔二世和爱斯托尼亚人苦战时，奇迹突然降到他身上当时他张挂此旗作战大获全，于是丹麦一直使用这面旗。另一种说法，此旗是教宗送给十字军的旗帜，十字架代表教宗的支持。&lt;/p&gt;&lt;p align="center"&gt;&lt;a target="_blank"&gt;&lt;img src="http://hiphotos.baidu.com/%B1%F9%BA%D3%D1%A9%D4%AD/pic/item/02087bf4715fd1e2f2d385ae.jpg" alt="按此在新窗口浏览图片" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;br /&gt; 冰岛 Iceland&lt;br /&gt; &lt;br /&gt; 基于历史及民族共通性，冰岛的国旗是采用北欧各国共通的十字形，蓝色自古以是冰岛民族的色彩，在传统服饰上经常使用的蓝色。&lt;/p&gt;&lt;p align="center"&gt;&lt;a target="_blank"&gt;&lt;img src="http://hiphotos.baidu.com/%B1%F9%BA%D3%D1%A9%D4%AD/pic/item/0ad162d98f5de41711df9bae.jpg" alt="按此在新窗口浏览图片" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2283127.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2011/12/10/2283127.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2011/09/26/2191596.html</id><title type="text">lu面</title><summary type="text">2006/8/10 13:48:37到上海好几年了，却始终无法感受沪菜的精妙，这大概与我缺乏“吃”觉神经有关，总感觉吃难以在我的大脑皮层留下深刻的印象，有时吃到一个东西很好吃，可常常不久便忘了，不记得那样好吃的叫什么名，也记不清在哪里吃的，有点苦恼。但是，有些东西即使很久没吃过了，却是总忘不了，比如从小常吃却吃不腻的——Lu面。从记得Lu面是什么味道开始，我始终只知读音，不知这Lu是哪个字，我奶奶不知道，我妈也不知道，以致我在说到这个字的时候，大脑里只好用“六面”、“陆面”、“鲁面”这些来代替。后来到了大学，跟一些同学说起Lu面时，他们都没吃过，也不曾听过，这面流传范围不广，不应该啊。不过名字</summary><published>2011-09-26T05:12:00Z</published><updated>2011-09-26T05:12:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2011/09/26/2191596.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2011/09/26/2191596.html"/><content type="html">&lt;h5 id="bp-94209CEF94BACF8A_1106-publish"&gt;2006/8/10 13:48:37&lt;/strong&gt;&lt;/p&gt;&lt;div id="bp-94209CEF94BACF8A_1106-content" class="blogpost"&gt;&lt;div&gt;到上海好几年了，却始终无法感受沪菜的精妙，这大概与我缺乏&amp;ldquo;吃&amp;rdquo;觉神经有关，总感觉吃难以在我的大脑皮层留下深刻的印象，有时吃到一个东西很好吃，可常常不久便忘了，不记得那样好吃的叫什么名，也记不清在哪里吃的，有点苦恼。但是，有些东西即使很久没吃过了，却是总忘不了，比如从小常吃却吃不腻的&amp;mdash;&amp;mdash;Lu面。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;从记得Lu面是什么味道开始，我始终只知读音，不知这Lu是哪个字，我奶奶不知道，我妈也不知道，以致我在说到这个字的时候，大脑里只好用&amp;ldquo;六面&amp;rdquo;、&amp;ldquo;陆面&amp;rdquo;、&amp;ldquo;鲁面&amp;rdquo;这些来代替。后来到了大学，跟一些同学说起Lu面时，他们都没吃过，也不曾听过，这面流传范围不广，不应该啊。不过名字不知如何写，读音也是方言，介绍起来确也困难。有人说是&amp;ldquo;卤面&amp;rdquo;，但明显做法跟&amp;ldquo;卤&amp;rdquo;是不同的；另有河南同学说是&amp;ldquo;焖面&amp;rdquo;，因为做法类似，后来兄弟们叫嚣着让他去河南餐馆请客，我点了焖面，不一样，跟Lu面还是有很大差距。再以后，在外面始终是无法吃到卤面，家里自从奶奶去世以后，也吃的更少了，而Lu面的Lu究竟哪个字，已成为萦绕心头二十多年的历史性难题。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;今天这个难题终于得到了解答。偶然翻起的一张旧报纸，角上有篇文章《赵家私房菜》，说的是赵树理家的私房菜。赵树理在北京居住时，有一次请老舍先生在家里吃饭，赵树理特别向老舍介绍正在吃着的那碗面。赵树理说，那叫&amp;ldquo;垆面&amp;rdquo;。老赵还专门下了考证的功夫，说&amp;ldquo;垆&amp;rdquo;是当年卓文君与司马相如相恋&amp;ldquo;当垆卖酒&amp;rdquo;的那个&amp;ldquo;垆&amp;rdquo;字。老赵说时蛮正经，不像是逗笑。老赵特别说，这可比焖面更好吃。文章里还介绍了&amp;ldquo;赵家垆面&amp;rdquo;的做法，与我印象中也是一致。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;ldquo;做垆面讲究的是好豆角（我家那边叫四季豆）。大约一斤半豆角配一斤面最合适。豆角洗净后不要切，而要一截一截地掐断，长一寸左右。掐断的比刀切的&amp;ldquo;入味&amp;rdquo;。然后用油炒，加盐、酱油、大料等。菜炒好，加水微煮。在煮时，把面放到上面，去焖。也有人先盛出一点菜汤，等蒸到三五分钟后再浇上一点。待面熟，铲起下面的豆角与面拌匀，那真可说是香气扑鼻。最重要的，事关好吃不好吃的大事有两点：一是，一定要手擀面，决不许用机压面或是挂面。加压面作出来，面与豆角互不粘连，像是拌上去的，此为大忌。而是擀面越硬越好。不能偷巧惜力，要和硬面，用力擀薄，力求切细。&amp;rdquo;&lt;/div&gt;&lt;div&gt;。。。。。。。。。。。。。。。。。。。。。。。。。。。。&lt;br /&gt;。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。&lt;/div&gt;&lt;div&gt;流两排口水记之。&lt;/div&gt;&lt;/div&gt;==========&lt;br /&gt;本是06年写在msn space的 space废了 现在转过来 保存一下&lt;img src="http://www.cnblogs.com/Silence/aggbug/2191596.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2011/09/26/2191596.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2011/09/09/2172515.html</id><title type="text">【转载】粤语翻译工具</title><summary type="text">import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.util.ArrayList;import java.util.List; import javax</summary><published>2011-09-09T06:27:00Z</published><updated>2011-09-09T06:27:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2011/09/09/2172515.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2011/09/09/2172515.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.BorderLayout;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.Color;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.Font;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.GridLayout;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.event.ActionEvent;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.event.ActionListener;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.event.MouseAdapter;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.awt.event.MouseEvent;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.util.ArrayList;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; java.util.List;&lt;br /&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; javax.swing.JButton;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; javax.swing.JFrame;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; javax.swing.JPanel;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; javax.swing.JTextArea;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; javax.swing.border.TitledBorder;&lt;br /&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt; * 粤语转换工具&lt;br /&gt; * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@author&lt;/span&gt;&lt;span style="color: #008000;"&gt; tiger&lt;br /&gt; * @date 2011-04-13&lt;br /&gt; *&lt;br /&gt; * 选中上面框中的词语，可同步在下框中显示出翻译出的词语。&lt;br /&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Yueyu {&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; putongs &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ArrayList&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; yues &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ArrayList&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;         &lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;了&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;左&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;不&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;唔&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;是&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;系&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;         &lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;说&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;话&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;想念&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;挂住&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;不是&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;唔系&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        add(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;说话&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;讲野&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;         &lt;br /&gt;        String yueyu_putonghua &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;我(我) 你(你) 佢(他) 我哋(我们) 你哋(你们) 佢哋(他们) 人哋(人家) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;呢度(这里) 嗰度(那里) 边度(哪里) 呢(这) 嗰(那) 咁样(这样、那样)点解(为什么) 第日(改天) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;第次(下次)乜嘢(什么) 乜(什么) 几多(多少) 边(哪) 咁好(这么好)阿爸(爸爸) 阿妈(妈妈) 阿哥(哥哥) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;阿嫂(嫂嫂) 阿爷(爷爷) 阿嫲(奶奶) 阿公(外公) 阿婆(外婆、老婆婆) 阿叔(叔叔) 老豆(爸爸)! 老妈子(妈妈) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;家姐(姐姐)大佬(哥哥) 细佬(弟弟) 心抱(媳妇) 舅父(舅舅) 孙(孙子) 仔仔(儿子) 女女(女儿) 契爷(干爹) 契仔(干儿子) 寡佬(单身汉) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;仔(儿子) 女(女儿) 后底乸(继母) 太子爷(少东家) 契弟(王八蛋) 老坑(老头) 老嘢(老东西，老家伙) 老姑婆(老处女) 基老(男同性恋者) 老细(老板) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;老千(骗子) 后生仔(年轻小伙子) 后生女(年轻姑娘) 靓仔(漂亮的小伙子) 靓女(漂亮的姑娘) 细路(小孩) 细蚊仔(小孩) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;臊虾(婴儿) 马仔(打手) 事头婆(老板娘)返工(上班) 收工(下班) 揾食(谋生) 人工(工钱) 出粮(发工资) 搞掂(搞妥当) 搞弯(弄糟糕) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;就手(顺利) 捱夜(熬夜) 空姐(飞机女服务员) 钟点工(计时工) 揾工(找工作) 做嘢(干活) 捞边行(搞什么行业) 一脚踢(一人承担) 轮更(轮班) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;看更(看门) 起屋(盖房子) 抓车(驾驶汽车)熟手(老练) 车衫(缝衣服) 夹手夹脚(一起动手) 执头执尾(收拾零碎的东西) 搏命(拼命) 癐(累) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;差池(差错) 撞板(碰钉子) 松人(溜走) 走人(溜走) 炒鱿鱼(解雇) 开OT(加班) 秘捞(兼职) 手信(小礼物) 人客(客人) 生埗(陌生、生疏) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;老友记(老朋友) 仇口(仇人) 托大脚(拍马屁) 危(求) 畀面(给面子) 制(肯) 得闲(有空) 冇几何(不常) 冇相干(没关系) 唔觉意(不留心) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;唔话得(没说的) 倾(谈) 倾偈(聊天) 早晨(早上好) 早唞(晚安) 揾人(找人) 拍拖(谈恋爱) 挂住(想念) 隔篱(隔壁) 掟煲(恋人分手) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;好夹(很合得来) 探(拜访) 讲笑(开玩笑) 羞家(丢脸) 起身(起床) 着(穿) 除(脱) 浪口(漱口) 飞发(理发) 电发(烫发) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;洗面(洗脸) 屙屎(大便) 屙尿(小便)闩门(关门) 熄灯(关灯) 水喉(水龙头) 瞓觉(睡觉) 食(吃) 食晏(吃午餐) 食烟(抽烟) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;滚水(开水) 煲(煮) 焗(焖) 饮胜(干杯) 颈渴(口渴) 餸(下饭的菜) 腍(软) 霄夜(夜宵) 饮(渴) 台(桌子) 梳化(沙发) 雪柜(冰箱) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;傢俬(家具) 皮箧(皮箱) 夹万(保险箱) 刀仔(小刀) 花樽(花瓶) 香枧(香皂) 镬(锅) 咪(麦克风) 插苏(插座) 火水(煤油) 遮(伞) 地拖(拖把) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;电心(电池) 洋烛(蜡烛) 花洒(莲蓬头) 壳(勺子) 番枧(肥皂) 扫把(扫帚) 匙羹(小勺子) 褛(外套) 大褛(大衣) 衫(衣服) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;T恤(针织或棉质上衣) 裤(裤子) 鞋(鞋子) 底衫(内衣) 底裤(内裤) 高争鞋(高跟鞋) 领太(领带) 荷包(钱包) 唇膏(口红)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;头壳(脑袋) 头皮(头屑) 面珠墩(脸蛋儿) 酒凹(酒窝) 下爬(下巴) 眼(眼睛) 眼眉(眉毛) 眼核(眼珠) 耳仔(耳朵) 耳屎(耳垢) 大牙(槽牙) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;鼻哥(鼻子) 鼻哥窿(鼻孔)身子(身体) 心口(胸口) 膊头(肩膀) 毛管(毛孔)罗柚(屁股) 手板(手掌) 手瓜(胳膊) 脚(脚、腿) 背脊(脊背) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;尾龙骨(尾骨) 肚腩(小肚子) 睇医生(看病) 驳骨(接骨头) 联针(缝针) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;埋口(合口) 执药(抓药) 燥火(上火) 好翻(好了) 唔精神(不舒服) 冻亲(着凉) 头赤(头痛) 打冷震(发抖) 打噎(打嗝) 呕血(吐血) 浊亲(被水呛着)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;        String yueyu_putonghua_2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;岳高头(仰起头)拧头(摇头) 目及 geb6(盯)眯m&amp;eacute;i1埋眼(闭眼)瞌heb3(闭)啜(嘬，吻)噍(嚼) 唞气(呼吸) 渺嘴(撇嘴) 擘大口(张大口)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;喐手(动手)笃(戳) 笠(套) 弗fit1(鞭打)抰y&amp;ecirc;ng2(抖)揞(蒙，捂)搣mit1(掰)摱man1(攀，扳)掹meng1(拔)豆(碰，摸)掟d&amp;eacute;ng3(扔)抠(掺杂)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;抠乱(搞混了) 抄cao3(搜，翻)挤(放)搦(拿) 捽(揉) 掴(用掌打) 省(擦) 吉(扎，刺)批(削)濑(洒) 枳zed1入去(塞进去)走(跑)走夹唔唞(拼命走) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;标(冲)坎头埋墙(把头撞在墙上，形容人自讨苦吃)企(站) 嗌(叫，喊)嗌交(吵架) 撩(逗)单单打打(说风凉话，含沙射影，讽刺攻击)诈假ga1意yi1(假装)诈娇(撒娇)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;扭拧(扭捏) 睇衰(看不起，看扁) 索气(吸气)揩油、索油(占便宜)攞嚟衰(自讨苦吃) 储储埋埋(攒起来)打交(打架) 打横(横着)打掂(竖着) 打底(垫底)打赤脚(赤着脚)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; 打大赤肋(赤着上身)折堕(做孽，遭遇悲惨)惊g&amp;eacute;ng1(害怕)发姣(卖弄风骚)锡(疼爱)孭(背) 得人惊(令人害怕) 得个吉(一场空) 厄水(骗钱) 邓(替) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;抵(值得) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;翻嚟(回来) 打个冷(转一回) 骑呢(古怪) 揾笨(占人便宜) 典地(撒赖) 碌(滚动) 睇水(把风) 大洗(花钱过度)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;         &lt;br /&gt;        String yueyu_putonghua_3 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;钟意(喜欢) 爱锡(疼爱)快活(快乐)得戚(得意洋洋) 嬲nao1(生气)发嬲(生气)笑骑骑(笑哈哈) 笑口噬噬(张开嘴笑)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;笑口吟吟(笑容满面)莲子蓉面口(比喻笑容满面)偷笑(暗笑)熠熟狗头(形容人张开嘴笑，像煮熟的狗头一样)火起(发火)火滚(恼火) 一把火(一肚子火)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;嬲爆爆(气冲冲)眼崛崛(瞪大眼睛，表示不满或生气) 崛(瞪)吹胀(1气坏，2无可奈何)肉赤(心疼)忧心(担心) 心淡(心灰意冷) 唔忿气(不服气)闭翳(发愁) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;喊(哭)喊苦喊忽(哭哭啼啼)苦瓜咁嘅面(像苦瓜那样拉长着脸，比喻愁眉苦脸)谷气(憋气)欢喜(喜欢) 乞人憎(令人讨厌)心思思(老惦念着)心挂挂(牵肠挂肚)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; 心水(心意) 愿(愿意)情愿(宁愿)心多多(三心两意)心喐喐(指动了心想做某事，但还没有行动)特登(故意) 爱(要)激气(心里有气) 专登(特意)失魂(慌张，精神恍惚)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;失魂鱼(形容人惊慌失措如受惊的鱼)心息(死心) 想话(打算)谂住(打算，预计) 心罨(心里悲伤难受)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;心甘(甘心) 乍乍帝(装模作样) 拾下拾下(傻乎乎) 戆居(呆，傻，笨) 凼(哄) 蕉积(嚣张，气焰高涨) 个心嗱住(心里酸溜溜) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;        String yueyu_putonghua_4 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;乜(什么) 嘅(的) 嬲(生气)咁(如此) 哋(们) 睇(看) 啲(那些) 冇(没有) 惗(想) 嘎(啊) 咩(什么) 冧(陶醉) 波(球) 雪条(冰棒)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;啱啱(刚刚，刚好) 啱先(刚才) 正话(刚才) 凑啱(恰好) 不溜(一向) 先至(才) 就嚟(就要) 经已(已经) 卒之(终于) 终归(终究) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;终须(终究) 仲(还) 鬼咁(那么) 十分之(十分) 极之(极) 相当之(相当) 非常之(非常) 稍为(稍微) 净(光，只有) 净喺(只是，光是) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;差唔多(差不多) 连气(一连) 亦(也) 又试(又) 但凡(凡是) 逢喺(凡是) 咪mei2(别) 咪住(! 先别) 唔使(不用) 唔好(不好) 唔通(难道) 实(一定)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; 奉旨(肯定) 查实(其实) 是必(必定) 梗(肯定) 一于(就，表示下定决心去做某事) 千祈(千万) 专登(专门，故意) 特登(特地) 好在(幸亏) 直头(直接) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;直情(简直，根本) 同埋(和，同) 一喺(要么) 事关(因为) 固然之(固然) 固之然(固然) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;之不过(不过) 即管(尽管) 唔单只(不但) 不特止(不仅仅) 定(还是) 抑或(或者) 于是乎(于是) 然之后(然后) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;同(和) 为咗(为了) 啫(罢了) 之嘛(罢了) 啩(吧) &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; ;&lt;br /&gt;         &lt;br /&gt;         &lt;br /&gt;         &lt;br /&gt;        add(yueyu_putonghua);&lt;br /&gt;        add(yueyu_putonghua_2);&lt;br /&gt;        add(yueyu_putonghua_3);&lt;br /&gt;        add(yueyu_putonghua_4);&lt;br /&gt;     &lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * 添加字库&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; putonghua&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; yueyu&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; add(String putonghua, String yueyu) {&lt;br /&gt;        putongs.add(putonghua);&lt;br /&gt;        yues.add(yueyu);&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * 添加字库&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; str&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; add(String str) {&lt;br /&gt;        String temp;&lt;br /&gt;        String putonghua &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;, yueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;boolean&lt;/span&gt;&lt;span style="color: #000000;"&gt; isPutong &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.length(); i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;            temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.substring(i, i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(temp.equals(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;continue&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(temp.equals(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;            {&lt;br /&gt;                isPutong &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(temp.equals(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;            {&lt;br /&gt;                isPutong &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                putongs.add(putonghua);&lt;br /&gt;                yues.add(yueyu);&lt;br /&gt;                 &lt;br /&gt;                System.out.println(putonghua &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;  , &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; yueyu);&lt;br /&gt;                 &lt;br /&gt;                putonghua &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                yueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(isPutong)&lt;br /&gt;                {&lt;br /&gt;                    putonghua &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; temp;&lt;br /&gt;                }&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;                    yueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; temp;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * 根据粤语词得到对应普通话&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; yueyu&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@return&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; String getPutonghua(String yueyu)&lt;br /&gt;    {&lt;br /&gt;        String result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; yueyu;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; yues.size(); i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(yues.get(i).equals(yueyu))&lt;br /&gt;            {&lt;br /&gt;                result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; putongs.get(i);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result;&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * 根据普通话词语得到对应粤语&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; putonghua&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@return&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; String getYueyu(String putonghua)&lt;br /&gt;    {&lt;br /&gt;        String result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; putonghua;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; putongs.size(); i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(putongs.get(i).equals(putonghua))&lt;br /&gt;            {&lt;br /&gt;                result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; yues.get(i);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result;&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * 普通话翻译为粤语&lt;br /&gt;     *&lt;br /&gt;     * 先判断两个字，尽量翻译之。如果翻译没有变化，再判断一个字。&lt;br /&gt;     *&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; str&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; String translate(String str) {&lt;br /&gt;        StringBuffer result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuffer();&lt;br /&gt;        String temp , yueyu;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; j;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; length &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.length();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; length; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;            temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.substring(i, Math.min(i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, length));&lt;br /&gt;            yueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getYueyu(temp);&lt;br /&gt;            j &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(yueyu.equals(temp))&lt;br /&gt;            {&lt;br /&gt;                temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.substring(i, i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                yueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getYueyu(temp);&lt;br /&gt;                j &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; j;&lt;br /&gt;            result.append(yueyu);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result.toString();&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * 粤语翻译为普通话&lt;br /&gt;     *&lt;br /&gt;     * 先判断两个字，尽量翻译之。如果翻译没有变化，再判断一个字。&lt;br /&gt;     *&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; str&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; String translate2(String str) {&lt;br /&gt;        StringBuffer result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuffer();&lt;br /&gt;        String temp , putong;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; j;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; length &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.length();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; length; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;            temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.substring(i, Math.min(i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, length));&lt;br /&gt;            putong &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getPutonghua(temp);&lt;br /&gt;            j &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(putong.equals(temp))&lt;br /&gt;            {&lt;br /&gt;                temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.substring(i, i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                putong &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getPutonghua(temp);&lt;br /&gt;                j &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            i &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; j;&lt;br /&gt;            result.append(putong);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result.toString();&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; transToPutong &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;implements&lt;/span&gt;&lt;span style="color: #000000;"&gt; ActionListener{&lt;br /&gt;        JTextArea area1, area2;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; transToPutong(JTextArea area1, JTextArea area2) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.area1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area1;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.area2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area2;&lt;br /&gt;        }&lt;br /&gt;        @Override&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; actionPerformed(ActionEvent e) {&lt;br /&gt;            String text &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area1.getText();&lt;br /&gt;            area2.setText(translate2(text));&lt;br /&gt;             &lt;br /&gt;            isTranslateYueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; transToYueyu &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;implements&lt;/span&gt;&lt;span style="color: #000000;"&gt; ActionListener{&lt;br /&gt;        JTextArea area1, area2;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; transToYueyu(JTextArea area1, JTextArea area2) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.area1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area1;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.area2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area2;&lt;br /&gt;        }&lt;br /&gt;        @Override&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; actionPerformed(ActionEvent e) {&lt;br /&gt;            String text &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area1.getText();&lt;br /&gt;            area2.setText(translate(text));&lt;br /&gt;             &lt;br /&gt;            isTranslateYueyu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;boolean&lt;/span&gt;&lt;span style="color: #000000;"&gt; isTranslateYueyu ;&lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; areaAction1 &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;extends&lt;/span&gt;&lt;span style="color: #000000;"&gt; MouseAdapter{&lt;br /&gt;        JTextArea area1, area2;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; areaAction1(JTextArea area1, JTextArea area2) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.area1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area1;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.area2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area2;&lt;br /&gt;        }&lt;br /&gt;        @Override&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; mouseReleased(MouseEvent e) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;super&lt;/span&gt;&lt;span style="color: #000000;"&gt;.mouseReleased(e);&lt;br /&gt;            String text &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area1.getSelectedText();&lt;br /&gt;            String text2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; area2.getText();&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(text &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; text.trim().equals(&lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; text2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; text2.trim().equals(&lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            String transText &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(isTranslateYueyu)&lt;br /&gt;            {&lt;br /&gt;                transText &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getYueyu(text);&lt;br /&gt;            }&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;                transText &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getPutonghua(text);&lt;br /&gt;            }&lt;br /&gt;             &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; text2.indexOf(transText);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(index &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            {&lt;br /&gt;                area2.requestFocus();&lt;br /&gt;                area2.setSelectionColor(Color.black);&lt;br /&gt;                area2.setSelectedTextColor(Color.GREEN);&lt;br /&gt;                area2.setSelectionStart(index);&lt;br /&gt;                area2.setSelectionEnd(index &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; transText.length());&lt;br /&gt;                area2.repaint();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/**&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;     * &lt;/span&gt;&lt;span style="color: #808080;"&gt;@param&lt;/span&gt;&lt;span style="color: #008000;"&gt; args&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; main(String[] args) {&lt;br /&gt;         &lt;br /&gt;        Yueyu y &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Yueyu();&lt;br /&gt;         &lt;br /&gt;        JFrame frame &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JFrame(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;粤语翻译&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;         &lt;br /&gt;        JPanel panel &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JPanel();&lt;br /&gt;        panel.setLayout(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; BorderLayout());&lt;br /&gt;         &lt;br /&gt;        JPanel textPanel &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JPanel();&lt;br /&gt;        textPanel.setLayout(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; GridLayout(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;         &lt;br /&gt;        JTextArea area1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JTextArea(&lt;/span&gt;&lt;span style="color: #000000;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;36&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        area1.setFont(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Font(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;Serif&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,Font.PLAIN,&lt;/span&gt;&lt;span style="color: #000000;"&gt;20&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        area1.setBorder(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; TitledBorder(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;输入要翻译的文字:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        textPanel.add(area1);&lt;br /&gt;         &lt;br /&gt;        JTextArea area2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JTextArea(&lt;/span&gt;&lt;span style="color: #000000;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;36&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        area2.setFont(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Font(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;Serif&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,Font.PLAIN,&lt;/span&gt;&lt;span style="color: #000000;"&gt;20&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        area2.setBorder(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; TitledBorder(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;翻译后的文字：&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        textPanel.add(area2);&lt;br /&gt;         &lt;br /&gt;        panel.add(textPanel, BorderLayout.CENTER);&lt;br /&gt;         &lt;br /&gt;        area1.addMouseListener(y.&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; areaAction1(area1, area2));&lt;br /&gt;         &lt;br /&gt;         &lt;br /&gt;        JPanel ctrlPanel &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JPanel();&lt;br /&gt;        ctrlPanel.setLayout(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; GridLayout(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        JButton btn1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JButton(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;转为粤语&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        ctrlPanel.add(btn1);&lt;br /&gt;         &lt;br /&gt;        JButton btn2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; JButton(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;转为普通话&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        ctrlPanel.add(btn2);&lt;br /&gt;        panel.add(ctrlPanel, BorderLayout.EAST);&lt;br /&gt;         &lt;br /&gt;         &lt;br /&gt;        btn1.addActionListener(y. &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; transToYueyu(area1, area2));&lt;br /&gt;        btn2.addActionListener(y. &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; transToPutong(area1, area2));&lt;br /&gt;         &lt;br /&gt;        frame.getContentPane().add(panel);&lt;br /&gt;        frame.pack();&lt;br /&gt;        frame.setLocationRelativeTo(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        frame.setVisible(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;         &lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;转载地址：http://www.cnblogs.com/chaohi/archive/2011/05/31/2064099.html&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;编辑器加载中...&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2172515.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2011/09/09/2172515.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2011/08/20/2147556.html</id><title type="text">异形魔方的解法</title><summary type="text">异形魔方的算法。说明如图：（1）编号如图所示，上层12345678 下层11,12,13,14,15,16,17,18 （2）R1动作为线前侧（图中5,6,7,8,14,15,16,17位置）旋转180度，R2为线前侧（7,6,5,4,18,17,16,15位置）旋转， R3为线右侧（3,4,5,6,12,13,14,15位置）旋转，R4为线右侧（5,4,3,2,16,15,14,13）旋转。（3）R5、R6、R7、R8分别对应上层顺时针旋转90度后执行R1、R2、R3、R4。（4）R9、R10、R11、R12分别对应上层顺时针旋转180度后执行R1、R2、R3、R4。（5）R13、R14、R15、R16分别对应上层顺时针旋转270度后执行R1、R2、R3、R4。（6）打乱状态starta，startb分别为上下两层、从左上角开始、按顺时针顺序</summary><published>2011-08-20T15:17:00Z</published><updated>2011-08-20T15:17:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2011/08/20/2147556.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2011/08/20/2147556.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/4098/2011082110203580.jpg" alt="" height="332" width="444" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/4098/2011082110172110.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;异形魔方的算法。by &lt;a href="http://weibo.com/allcome"&gt;@沉默de世界&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这个是暴力破解，打乱试了几次，一种用了7步还原，一种用了6步还原，估计大部分状态10步以内可以还原，超过10步计算就很费时了。&lt;/p&gt;说明如图：（1）编号如图所示，上层12345678  下层11,12,13,14,15,16,17,18 。（2）R1动作为线前侧（图中5,6,7,8,14,15,16,17位置）旋转180度，R2为线前侧（7,6,5,4,18,17,16,15位置）旋转，R3为线右侧（3,4,5,6,12,13,14,15位置）旋转，R4为线右侧（5,4,3,2,16,15,14,13）旋转。（3）R5、R6、R7、R8分别对应上层顺时针旋转90度后执行R1、R2、R3、R4。（4）R9、R10、R11、R12分别对应上层顺时针旋转180度后执行R1、R2、R3、R4。（5）R13、R14、R15、R16分别对应上层顺时针旋转270度后执行R1、R2、R3、R4。（6）打乱状态starta，startb分别为上下两层、从左上角开始、按顺时针顺序的块编号,改程序中初始值即可。在以上转动过程中编号11的块位置是始终保持不变的。&amp;nbsp;//written by @沉默de世界#include "stdafx.h"&lt;br/&gt;#include "stdio.h"&lt;br/&gt;&lt;br/&gt;#define DEEP_MAX 20&lt;br/&gt;//70*6 * 70*6 *4 * 6*6*4&lt;br/&gt;typedef struct_CUBE_STATUS{&lt;br/&gt;int a[8];&lt;br/&gt;int b[8];&lt;br/&gt;}CUBE_STATUS;  &lt;br/&gt;&lt;br/&gt;CUBE_STATUS cb0,cb1,cb;&lt;br/&gt;int succflag=0;&lt;br/&gt;int act[DEEP_MAX]={0};&lt;br/&gt;int deep_i=-1; &lt;br/&gt;int deep_max=-1;&lt;br/&gt;int deep_reuslt=0;&lt;br/&gt;&lt;br/&gt;void cpy(CUBE_STATUS *p1, CUBE_STATUS *p0); &lt;br/&gt;void pntcb(CUBE_STATUS *p);&lt;br/&gt;void Rot(CUBE_STATUS *p);&lt;br/&gt;void Rn(CUBE_STATUS *p,int n);&lt;br/&gt;int IsSame(CUBE_STATUS *p1,CUBE_STATUS *p2);&lt;br/&gt;&lt;br/&gt;int main(int argc, char* argv[])&lt;br/&gt;{&lt;br/&gt;&lt;br/&gt;//int starta[8]={3,4,5,6,17,16,15,14};&lt;br/&gt;//int startb[8]={11,12,13,2,1,8,7,18};&lt;br/&gt;&lt;br/&gt;//int starta[8]={1,2,3,4,5,16,7,8};&lt;br/&gt;//int startb[8]={11,12,13,14,17,6,15,18};&lt;br/&gt;&lt;br/&gt;int starta[8]={5,14,3,16, 15,6,7,8};&lt;br/&gt;int startb[8]={11,12,13,2, 1,4,17,18};&lt;br/&gt;&lt;br/&gt;int i=0;&lt;br/&gt;&lt;br/&gt;for (i=0;i&amp;lt;8;i++)&lt;br/&gt;{&lt;br/&gt;cb0.a[i]=i+1;//目标状态&lt;br/&gt;cb0.b[i]=i+11;&lt;br/&gt;cb1.a[i]=starta[i];//初始状态&lt;br/&gt;cb1.b[i]=startb[i];&lt;br/&gt;&lt;br/&gt;cb.a[i]=starta[i];&lt;br/&gt;cb.b[i]=startb[i];&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;printf("start...\n");&lt;br/&gt;&lt;br/&gt;if(IsSame(&amp;amp;cb,&amp;amp;cb0))&lt;br/&gt;succflag=1;&lt;br/&gt;else&lt;br/&gt;{&lt;br/&gt;for (deep_i=0,deep_max=1;deep_max&amp;lt;=DEEP_MAX;deep_max++)&lt;br/&gt;{&lt;br/&gt;printf("\nMAXDEEP: %d \n",deep_max);&lt;br/&gt;Rot(&amp;amp;cb);&lt;br/&gt;if(succflag==1)break;&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;if(succflag==1)&lt;br/&gt;{&lt;br/&gt;printf("\nSucceed! It need %d steppes. \n",deep_reuslt);&lt;br/&gt;&lt;br/&gt;printf("start:");&lt;br/&gt;pntcb(&amp;amp;cb1);&lt;br/&gt;&lt;br/&gt;for (i=0;i&amp;lt;deep_reuslt;i++)&lt;br/&gt;{&lt;br/&gt;Rn(&amp;amp;cb1,act[i]);&lt;br/&gt;&lt;br/&gt;printf("R%-2d-&amp;gt; ",act[i]);&lt;br/&gt;pntcb(&amp;amp;cb1);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;else&lt;br/&gt;printf("failed!\n");&lt;br/&gt;&lt;br/&gt;return 0;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;void Rot(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int i;&lt;br/&gt;&lt;br/&gt;if(deep_i&amp;gt;=deep_max) return;&lt;br/&gt;&lt;br/&gt;for (i=1;i&amp;lt;=16;i++)&lt;br/&gt;{&lt;br/&gt;CUBE_STATUS tmp;&lt;br/&gt;&lt;br/&gt;if( deep_i&amp;gt;0 )&lt;br/&gt;{&lt;br/&gt;if (   ( i==1 &amp;amp;&amp;amp; (act[deep_i-1]==1 || act[deep_i-1]==5 || act[deep_i-1]==9 || act[deep_i-1]==13) )&lt;br/&gt;|| ( i==2 &amp;amp;&amp;amp; (act[deep_i-1]==2 || act[deep_i-1]==6 || act[deep_i-1]==10 || act[deep_i-1]==14) )&lt;br/&gt;|| ( i==3 &amp;amp;&amp;amp; (act[deep_i-1]==3 || act[deep_i-1]==7 || act[deep_i-1]==11 || act[deep_i-1]==15) )&lt;br/&gt;|| ( i==4 &amp;amp;&amp;amp; (act[deep_i-1]==4 || act[deep_i-1]==8 || act[deep_i-1]==12 || act[deep_i-1]==16) )&lt;br/&gt;   )&lt;br/&gt;   continue;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;cpy(&amp;amp;tmp,p);&lt;br/&gt;Rn(&amp;amp;tmp,i);&lt;br/&gt;act[deep_i]=i;&lt;br/&gt;&lt;br/&gt;if(IsSame(&amp;amp;tmp,&amp;amp;cb0)) &lt;br/&gt;{&lt;br/&gt;succflag=1;&lt;br/&gt;deep_reuslt=deep_i+1;&lt;br/&gt;return;&lt;br/&gt;}&lt;br/&gt;else&lt;br/&gt;{&lt;br/&gt;deep_i++;&lt;br/&gt;Rot(&amp;amp;tmp);&lt;br/&gt;deep_i--;&lt;br/&gt;if(succflag==1)&lt;br/&gt;{&lt;br/&gt;return;&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;int IsSame(CUBE_STATUS *p1,CUBE_STATUS *p2)&lt;br/&gt;{&lt;br/&gt;if( &lt;br/&gt;(p1-&amp;gt;b[0]==p2-&amp;gt;b[0] &amp;amp;&amp;amp; p1-&amp;gt;b[1]==p2-&amp;gt;b[1] &amp;amp;&amp;amp;&lt;br/&gt; p1-&amp;gt;b[2]==p2-&amp;gt;b[2] &amp;amp;&amp;amp; p1-&amp;gt;b[3]==p2-&amp;gt;b[3] &amp;amp;&amp;amp;&lt;br/&gt; p1-&amp;gt;b[4]==p2-&amp;gt;b[4] &amp;amp;&amp;amp; p1-&amp;gt;b[5]==p2-&amp;gt;b[5] &amp;amp;&amp;amp;&lt;br/&gt; p1-&amp;gt;b[6]==p2-&amp;gt;b[6] &amp;amp;&amp;amp; p1-&amp;gt;b[7]==p2-&amp;gt;b[7] ) &lt;br/&gt; &amp;amp;&amp;amp;( &lt;br/&gt;   (p1-&amp;gt;a[0]==p2-&amp;gt;a[0] &amp;amp;&amp;amp; p1-&amp;gt;a[1]==p2-&amp;gt;a[1] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[2]==p2-&amp;gt;a[2] &amp;amp;&amp;amp; p1-&amp;gt;a[3]==p2-&amp;gt;a[3] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[4]==p2-&amp;gt;a[4] &amp;amp;&amp;amp; p1-&amp;gt;a[5]==p2-&amp;gt;a[5] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[6]==p2-&amp;gt;a[6] &amp;amp;&amp;amp; p1-&amp;gt;a[7]==p2-&amp;gt;a[7]) ||&lt;br/&gt;&lt;br/&gt;(p1-&amp;gt;a[0]==p2-&amp;gt;a[2] &amp;amp;&amp;amp; p1-&amp;gt;a[1]==p2-&amp;gt;a[3] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[2]==p2-&amp;gt;a[4] &amp;amp;&amp;amp; p1-&amp;gt;a[3]==p2-&amp;gt;a[5] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[4]==p2-&amp;gt;a[6] &amp;amp;&amp;amp; p1-&amp;gt;a[5]==p2-&amp;gt;a[7] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[6]==p2-&amp;gt;a[0] &amp;amp;&amp;amp; p1-&amp;gt;a[7]==p2-&amp;gt;a[1]) ||&lt;br/&gt;&lt;br/&gt;(p1-&amp;gt;a[0]==p2-&amp;gt;a[4] &amp;amp;&amp;amp; p1-&amp;gt;a[1]==p2-&amp;gt;a[5] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[2]==p2-&amp;gt;a[6] &amp;amp;&amp;amp; p1-&amp;gt;a[3]==p2-&amp;gt;a[7] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[4]==p2-&amp;gt;a[0] &amp;amp;&amp;amp; p1-&amp;gt;a[5]==p2-&amp;gt;a[1] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[6]==p2-&amp;gt;a[2] &amp;amp;&amp;amp; p1-&amp;gt;a[7]==p2-&amp;gt;a[3]) ||&lt;br/&gt;&lt;br/&gt;(p1-&amp;gt;a[0]==p2-&amp;gt;a[6] &amp;amp;&amp;amp; p1-&amp;gt;a[1]==p2-&amp;gt;a[7] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[2]==p2-&amp;gt;a[0] &amp;amp;&amp;amp; p1-&amp;gt;a[3]==p2-&amp;gt;a[1] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[4]==p2-&amp;gt;a[2] &amp;amp;&amp;amp; p1-&amp;gt;a[5]==p2-&amp;gt;a[3] &amp;amp;&amp;amp;&lt;br/&gt;p1-&amp;gt;a[6]==p2-&amp;gt;a[4] &amp;amp;&amp;amp; p1-&amp;gt;a[7]==p2-&amp;gt;a[5]) &lt;br/&gt;)&lt;br/&gt; ) &lt;br/&gt;return 1;&lt;br/&gt;else&lt;br/&gt;return 0;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R90(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int t0=0,t1=0;&lt;br/&gt;&lt;br/&gt;t0=p-&amp;gt;a[0];&lt;br/&gt;t1=p-&amp;gt;a[1];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[0]=p-&amp;gt;a[6];&lt;br/&gt;p-&amp;gt;a[1]=p-&amp;gt;a[7];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[6]=p-&amp;gt;a[4];&lt;br/&gt;p-&amp;gt;a[7]=p-&amp;gt;a[5];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[4]=p-&amp;gt;a[2];&lt;br/&gt;p-&amp;gt;a[5]=p-&amp;gt;a[3];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[2]=t0;&lt;br/&gt;p-&amp;gt;a[3]=t1;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R180(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int t0=0,t1=0,t2=0,t3=0;&lt;br/&gt;&lt;br/&gt;t0=p-&amp;gt;a[0];&lt;br/&gt;t1=p-&amp;gt;a[1];&lt;br/&gt;t2=p-&amp;gt;a[2];&lt;br/&gt;t3=p-&amp;gt;a[3];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[0]=p-&amp;gt;a[4];&lt;br/&gt;p-&amp;gt;a[1]=p-&amp;gt;a[5];&lt;br/&gt;p-&amp;gt;a[2]=p-&amp;gt;a[6];&lt;br/&gt;p-&amp;gt;a[3]=p-&amp;gt;a[7];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[4]=t0;&lt;br/&gt;p-&amp;gt;a[5]=t1;&lt;br/&gt;p-&amp;gt;a[6]=t2;&lt;br/&gt;p-&amp;gt;a[7]=t3;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R270(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int t0=0,t1=0;&lt;br/&gt;&lt;br/&gt;t0=p-&amp;gt;a[0];&lt;br/&gt;t1=p-&amp;gt;a[1];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[0]=p-&amp;gt;a[2];&lt;br/&gt;p-&amp;gt;a[1]=p-&amp;gt;a[3];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[2]=p-&amp;gt;a[4];&lt;br/&gt;p-&amp;gt;a[3]=p-&amp;gt;a[5];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[4]=p-&amp;gt;a[6];&lt;br/&gt;p-&amp;gt;a[5]=p-&amp;gt;a[7];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[6]=t0;&lt;br/&gt;p-&amp;gt;a[7]=t1;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R1(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int ta7,ta6,ta5,ta4;&lt;br/&gt;&lt;br/&gt;ta7=p-&amp;gt;a[7];&lt;br/&gt;ta6=p-&amp;gt;a[6];&lt;br/&gt;ta5=p-&amp;gt;a[5];&lt;br/&gt;ta4=p-&amp;gt;a[4];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[7]=p-&amp;gt;b[3];&lt;br/&gt;p-&amp;gt;a[6]=p-&amp;gt;b[4];&lt;br/&gt;p-&amp;gt;a[5]=p-&amp;gt;b[5];&lt;br/&gt;p-&amp;gt;a[4]=p-&amp;gt;b[6];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;b[3]=ta7;&lt;br/&gt;p-&amp;gt;b[4]=ta6;&lt;br/&gt;p-&amp;gt;b[5]=ta5;&lt;br/&gt;p-&amp;gt;b[6]=ta4;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R2(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int ta6,ta5,ta4,ta3;&lt;br/&gt;&lt;br/&gt;ta6=p-&amp;gt;a[6];&lt;br/&gt;ta5=p-&amp;gt;a[5];&lt;br/&gt;ta4=p-&amp;gt;a[4];&lt;br/&gt;ta3=p-&amp;gt;a[3];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[6]=p-&amp;gt;b[4];&lt;br/&gt;p-&amp;gt;a[5]=p-&amp;gt;b[5];&lt;br/&gt;p-&amp;gt;a[4]=p-&amp;gt;b[6];&lt;br/&gt;p-&amp;gt;a[3]=p-&amp;gt;b[7];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;b[4]=ta6;&lt;br/&gt;p-&amp;gt;b[5]=ta5;&lt;br/&gt;p-&amp;gt;b[6]=ta4;&lt;br/&gt;p-&amp;gt;b[7]=ta3;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R3(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int ta2,ta5,ta4,ta3;&lt;br/&gt;&lt;br/&gt;ta5=p-&amp;gt;a[5];&lt;br/&gt;ta4=p-&amp;gt;a[4];&lt;br/&gt;ta3=p-&amp;gt;a[3];&lt;br/&gt;ta2=p-&amp;gt;a[2];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[5]=p-&amp;gt;b[1];&lt;br/&gt;p-&amp;gt;a[4]=p-&amp;gt;b[2];&lt;br/&gt;p-&amp;gt;a[3]=p-&amp;gt;b[3];&lt;br/&gt;p-&amp;gt;a[2]=p-&amp;gt;b[4];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;b[1]=ta5;&lt;br/&gt;p-&amp;gt;b[2]=ta4;&lt;br/&gt;p-&amp;gt;b[3]=ta3;&lt;br/&gt;p-&amp;gt;b[4]=ta2;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void R4(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;int ta2,ta1,ta4,ta3;&lt;br/&gt;&lt;br/&gt;ta1=p-&amp;gt;a[1];&lt;br/&gt;ta4=p-&amp;gt;a[4];&lt;br/&gt;ta3=p-&amp;gt;a[3];&lt;br/&gt;ta2=p-&amp;gt;a[2];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;a[4]=p-&amp;gt;b[2];&lt;br/&gt;p-&amp;gt;a[3]=p-&amp;gt;b[3];&lt;br/&gt;p-&amp;gt;a[2]=p-&amp;gt;b[4];&lt;br/&gt;p-&amp;gt;a[1]=p-&amp;gt;b[5];&lt;br/&gt;&lt;br/&gt;p-&amp;gt;b[2]=ta4;&lt;br/&gt;p-&amp;gt;b[3]=ta3;&lt;br/&gt;p-&amp;gt;b[4]=ta2;&lt;br/&gt;p-&amp;gt;b[5]=ta1;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;void Rn(CUBE_STATUS *p,int n)&lt;br/&gt;{&lt;br/&gt;switch(n)&lt;br/&gt;{&lt;br/&gt;//case 0: R0(p);break;&lt;br/&gt;&lt;br/&gt;case 1: R1(p);break;&lt;br/&gt;case 2: R2(p);break;&lt;br/&gt;case 3: R3(p);break;&lt;br/&gt;case 4: R4(p);break;&lt;br/&gt;&lt;br/&gt;case 5: R90(p);R1(p);break;&lt;br/&gt;case 6: R90(p);R2(p);break;&lt;br/&gt;case 7: R90(p);R3(p);break;&lt;br/&gt;case 8: R90(p);R4(p);break; &lt;br/&gt;&lt;br/&gt;case 9: R180(p);R1(p);break;&lt;br/&gt;case 10: R180(p);R2(p);break;&lt;br/&gt;case 11: R180(p);R3(p);break;&lt;br/&gt;case 12: R180(p);R4(p);break; &lt;br/&gt;&lt;br/&gt;case 13: R270(p);R1(p);break;&lt;br/&gt;case 14: R270(p);R2(p);break;&lt;br/&gt;case 15: R270(p);R3(p);break;&lt;br/&gt;case 16: R270(p);R4(p);break;&lt;br/&gt;&lt;br/&gt;default: ;&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void cpy(CUBE_STATUS *p1, CUBE_STATUS *p0)&lt;br/&gt;{&lt;br/&gt;for (int i=0;i&amp;lt;8;i++)&lt;br/&gt;{&lt;br/&gt;p1-&amp;gt;a[i]=p0-&amp;gt;a[i];&lt;br/&gt;p1-&amp;gt;b[i]=p0-&amp;gt;b[i];&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;void pntcb(CUBE_STATUS *p)&lt;br/&gt;{&lt;br/&gt;for (int j=0;j&amp;lt;8;j++)&lt;br/&gt;{&lt;br/&gt;printf("%d, ",p-&amp;gt;a[j]);&lt;br/&gt;}&lt;br/&gt;printf("  ");&lt;br/&gt;for (j=0;j&amp;lt;8;j++)&lt;br/&gt;{&lt;br/&gt;printf("%d, ",p-&amp;gt;b[j]);&lt;br/&gt;}&lt;br/&gt;printf("\n");&lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Silence/aggbug/2147556.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Silence/archive/2011/08/20/2147556.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2008/08/01/1257867.html</id><title type="text">[转载]聪明地使用Google的7个技巧</title><summary type="text">转载自：http://www.yeeyan.com/ 翻译: 余小果 10/18/2007 原文 引用 双语对照及眉批 我在下面编辑了一份包含7个使用Google的技巧的清单,我相信每个人都会想要知道这些.我认为这些技巧合在一起已经代表了使用Google搜索的所有技巧和方法的最高成就.虽然除此之外还有很多小技巧,但这7个一直是我的最爱,好好享受吧.</summary><published>2008-08-01T01:32:00Z</published><updated>2008-08-01T01:32:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2008/08/01/1257867.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2008/08/01/1257867.html"/><content type="text">转载自：http://www.yeeyan.com/ 翻译: 余小果 10/18/2007 原文 引用 双语对照及眉批 我在下面编辑了一份包含7个使用Google的技巧的清单,我相信每个人都会想要知道这些.我认为这些技巧合在一起已经代表了使用Google搜索的所有技巧和方法的最高成就.虽然除此之外还有很多小技巧,但这7个一直是我的最爱,好好享受吧.</content></entry><entry><id>http://www.cnblogs.com/Silence/archive/2008/04/19/1161324.html</id><title type="text">转载：“凤求凰”的解释，有才</title><summary type="text">三个字也是成语。“凤求凰”说的是汉代司马相如和卓文君的故事，来说说这个成语和其它相关的几个成语。 司马相如这个人物，跟笔者我、读者你很多这些混BBS的文学青年们相比最大的区别就是：没什么区别。都是没什么实际的本事，口袋里没多少钱，还好写个贴子，喜欢个流行音乐，研究个穿衣吃饭泡MM，搞得挺有思想挺特别的样子其实没大出息，古代就有这种人。 司马相如是成都人，本来叫司马犬子，就是...</summary><published>2008-04-19T09:12:00Z</published><updated>2008-04-19T09:12:00Z</updated><author><name>Silence</name><uri>http://www.cnblogs.com/Silence/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Silence/archive/2008/04/19/1161324.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Silence/archive/2008/04/19/1161324.html"/><content type="text">三个字也是成语。“凤求凰”说的是汉代司马相如和卓文君的故事，来说说这个成语和其它相关的几个成语。 司马相如这个人物，跟笔者我、读者你很多这些混BBS的文学青年们相比最大的区别就是：没什么区别。都是没什么实际的本事，口袋里没多少钱，还好写个贴子，喜欢个流行音乐，研究个穿衣吃饭泡MM，搞得挺有思想挺特别的样子其实没大出息，古代就有这种人。 司马相如是成都人，本来叫司马犬子，就是...</content></entry></feed>
