<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[我是程序员   -Shosh's Blog - JavaScript]]></title>
<link>http://www.wscxy.com/shosh/</link>
<description><![CDATA[]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[shosh.zhu@qisda.com(shosh)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>我是程序员   -Shosh&#39;s Blog</title>
	<url>http://www.wscxy.com/shosh/images/logos.gif</url>
	<link>http://www.wscxy.com/shosh/</link>
	<description>我是程序员   -Shosh&#39;s Blog</description>
</image>

			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=33</link>
			<title><![CDATA[程序员面试题目]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[JavaScript]]></category>
			<pubDate>Sun,20 Jul 2008 10:07:27 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=33</guid>
		<description><![CDATA[<p>昨天晚上宿舍小伙给我带了几道面试题目，该公司出题目相当有水平，给了题目让你自己回去做，可以通过各种途径，做出来后发mail回去就好了。本来有六道题，但是因为午夜之后了，所以只写了两道题给我看。有兴趣的朋友可以看看，有想法欢迎评论呀！</p>
<p>题目一：</p>
<p>设在嵌入式系统中没有乘法运算，让你设计一个高效的乘法函数，两个int型的入参，返回int值。</p>
<p>题目二：</p>
<p>看看下面的函数实现了什么功能，是什么原理？</p>
<OL id=shoCodeMain155ID style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: gray 1px solid; COLOR: #2f4f4f; WORD-BREAK: break-all; PADDING-TOP: 2px; BORDER-BOTTOM: gray 1px solid; FONT-FAMILY: Courier New; LIST-STYLE-TYPE: decimal; BACKGROUND-COLOR: #dcf5dc">
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black"><FONT color=blue>int</FONT>&nbsp;funcName<FONT color=#4b0082><B>(</B></FONT><FONT color=blue>int</FONT>&nbsp;n<FONT color=#4b0082><B>)</B></FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black"><FONT color=#4b0082><B>{</B></FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>int</FONT>&nbsp;temp&nbsp;<FONT color=#4b0082>=</FONT>&nbsp;<FONT color=red>0</FONT><FONT color=#4b0082>;</FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>while</FONT>&nbsp;<FONT color=#4b0082><B>(</B></FONT>n<FONT color=#4b0082><B>)</B></FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#4b0082><B>{</B></FONT>&nbsp;</SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;<FONT color=#4b0082>&amp;</FONT><FONT color=#4b0082>=</FONT>&nbsp;n&nbsp;<FONT color=#4b0082>-</FONT>&nbsp;<FONT color=red>1</FONT><FONT color=#4b0082>;</FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp<FONT color=#4b0082>+</FONT><FONT color=#4b0082>+</FONT><FONT color=#4b0082>;</FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#4b0082><B>}</B></FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=blue>return</FONT>&nbsp;temp<FONT color=#4b0082>;</FONT></SPAN></LI>
<LI style="PADDING-LEFT: 6px; MARGIN: 0px 0px 0px 50px; BORDER-LEFT: silver 2px ridge; LINE-HEIGHT: 18px; BACKGROUND-COLOR: #f5fffa"><SPAN style="COLOR: black"><FONT color=#4b0082><B>}</B></FONT>&nbsp;</SPAN></LI></OL>
<p>说到这些题目，不妨再来唠叨一下以前在老博客写过的一个题目：</p>
<p>如何不使用中间变量将两个数交换？</p>
<hr />
<p>题目一的一种方法（使用js实现，未考虑溢出）</p>
<ol id="shoCodeMain147ID" style="border-right: gray 1px solid; padding-right: 2px; border-top: gray 1px solid; padding-left: 2px; padding-bottom: 2px; margin: 0px; border-left: gray 1px solid; color: #2f4f4f; word-break: break-all; padding-top: 2px; border-bottom: gray 1px solid; font-family: Courier New; list-style-type: decimal; background-color: #dcf5dc">
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#008000">//方法一:</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#0000ff">function</font>&nbsp;honFun<font color="#800080"><b>(</b></font>a<font color="#4b0082">,</font>&nbsp;b<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">var</font>&nbsp;vResult&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">var</font>&nbsp;bFlag&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#0000ff">false</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font><font color="#ff0000">0</font>&nbsp;<font color="#4b0082">=</font><font color="#4b0082">=</font>&nbsp;a&nbsp;<font color="#4b0082">|</font><font color="#4b0082">|</font>&nbsp;<font color="#ff0000">0</font>&nbsp;<font color="#4b0082">=</font><font color="#4b0082">=</font>&nbsp;b<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&lt;</font>&nbsp;<font color="#ff0000">0</font><font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">-</font>b<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFlag&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#0000ff">true</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font>&nbsp;&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">while</font>&nbsp;<font color="#800080"><b>(</b></font>b<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&amp;</font>&nbsp;<font color="#ff0000">1</font><font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vResult&nbsp;<font color="#4b0082">+</font><font color="#4b0082">=</font>&nbsp;a<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">&gt;</font><font color="#4b0082">&gt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">&lt;</font><font color="#4b0082">&lt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font>&nbsp;bFlag&nbsp;<font color="#4b0082">?</font>&nbsp;<font color="#4b0082">-</font>vResult&nbsp;<font color="#4b0082">:</font>&nbsp;vResult<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>}</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#008000">//方法二(纯位操作，假设变量为32位):</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#0000ff">function</font>&nbsp;shoFun<font color="#800080"><b>(</b></font>a<font color="#4b0082">,</font>&nbsp;b<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">var</font>&nbsp;flag&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#800080"><b>(</b></font>a&nbsp;<font color="#4b0082">^</font>&nbsp;b<font color="#800080"><b>)</b></font>&nbsp;<font color="#4b0082">&amp;</font>&nbsp;0x80000000<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">var</font>&nbsp;result&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font><font color="#ff0000">0</font>&nbsp;<font color="#4b0082">=</font><font color="#4b0082">=</font>&nbsp;b&nbsp;<font color="#4b0082">|</font><font color="#4b0082">|</font>&nbsp;<font color="#ff0000">0</font>&nbsp;<font color="#4b0082">=</font><font color="#4b0082">=</font>&nbsp;a<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>a&nbsp;<font color="#4b0082">&amp;</font>&nbsp;0x80000000<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">~</font>a&nbsp;<font color="#4b0082">+</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&amp;</font>&nbsp;0x80000000<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">~</font>b&nbsp;<font color="#4b0082">+</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">while</font>&nbsp;<font color="#800080"><b>(</b></font>b<font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&amp;</font>&nbsp;<font color="#ff0000">1</font><font color="#800080"><b>)</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;<font color="#4b0082">+</font><font color="#4b0082">=</font>&nbsp;a<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">&gt;</font><font color="#4b0082">&gt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">&lt;</font><font color="#4b0082">&lt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font>&nbsp;flag&nbsp;<font color="#4b0082">?</font>&nbsp;<font color="#800080"><b>(</b></font><font color="#4b0082">~</font>result&nbsp;<font color="#4b0082">+</font>&nbsp;<font color="#ff0000">1</font><font color="#800080"><b>)</b></font>&nbsp;<font color="#4b0082">:</font>&nbsp;result<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>}</b></font>&nbsp;</span></li>
</ol>
<p>不过上面两个函数还可以精简优化，如下：</p>
<ol id="shoCodeMain140ID" style="border-right: gray 1px solid; padding-right: 2px; border-top: gray 1px solid; padding-left: 2px; padding-bottom: 2px; margin: 0px; border-left: gray 1px solid; color: #2f4f4f; word-break: break-all; padding-top: 2px; border-bottom: gray 1px solid; font-family: Courier New; list-style-type: decimal; background-color: #dcf5dc">
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#008000">//方法一</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#0000ff">function</font>&nbsp;shoFun<font color="#800080"><b>(</b></font>a<font color="#4b0082">,</font>&nbsp;b<font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>{</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">var</font>&nbsp;result&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&lt;</font>&nbsp;<font color="#ff0000">0</font><font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">-</font>b<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">-</font>a<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">while</font>&nbsp;<font color="#800080"><b>(</b></font>b<font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&amp;</font>&nbsp;<font color="#ff0000">1</font><font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;<font color="#4b0082">+</font><font color="#4b0082">=</font>&nbsp;a<font color="#4b0082">;</font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">&gt;</font><font color="#4b0082">&gt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">&lt;</font><font color="#4b0082">&lt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font>&nbsp;result<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>}</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#008000">//方法二(纯位操作，假设变量为32位):</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#0000ff">function</font>&nbsp;shoFun<font color="#800080"><b>(</b></font>a<font color="#4b0082">,</font>&nbsp;b<font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>{</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">var</font>&nbsp;result&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&amp;</font>&nbsp;0x80000000<font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">~</font>b&nbsp;<font color="#4b0082">+</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#4b0082">~</font>a&nbsp;<font color="#4b0082">+</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">while</font>&nbsp;<font color="#800080"><b>(</b></font>b<font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>{</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">if</font>&nbsp;<font color="#800080"><b>(</b></font>b&nbsp;<font color="#4b0082">&amp;</font>&nbsp;<font color="#ff0000">1</font><font color="#800080"><b>)</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;<font color="#4b0082">+</font><font color="#4b0082">=</font>&nbsp;a<font color="#4b0082">;</font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;<font color="#4b0082">&gt;</font><font color="#4b0082">&gt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;<font color="#4b0082">&lt;</font><font color="#4b0082">&lt;</font><font color="#4b0082">=</font>&nbsp;<font color="#ff0000">1</font><font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080"><b>}</b></font>&nbsp;</span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">return</font>&nbsp;result<font color="#4b0082">;</font></span></li>
    <li style="padding-left: 6px; margin: 0px 0px 0px 50px; border-left: silver 2px ridge; line-height: 18px; background-color: #f5fffa"><span style="color: black"><font color="#800080"><b>}</b></font>&nbsp;&nbsp;</span></li>
</ol>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=19</link>
			<title><![CDATA[本站预期做出的代码发布样式]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[JavaScript]]></category>
			<pubDate>Mon,23 Jun 2008 20:08:00 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=19</guid>
		<description><![CDATA[<p>请直接打开下面的链接浏览效果。</p>
<p><a href="http://www.wscxy.com/shosh/uploads/codeStyle.htm" target="_blank">http://www.wscxy.com/shosh/uploads/codeStyle.htm</a></p>
<p>&nbsp;</p>
<p><strong>说明：</strong></p>
<p>1、外观上应该差不多就这样子了</p>
<p>2、目前只完成了Hide/Unfold/Fold（隐藏/展开/收缩）的功能，其余的功能尚为完成。</p>
<p>3、Type显示的为当前的代码使用的颜色加亮格式</p>
<p>4、Copy指将原始的代码（包括\t等信息）拷贝到剪切板。</p>
<p>5、Save是指将加亮后的代码以网页的形式保存到本地。</p>
<p>6、Run是指将原始的代码以网页的形式运行，如果原始的代码为javascript或html或webpage，将可以看到效果。</p>
<p>7、NewWin是指打开新的窗口查看代码（看到的效果与打开保存后的网页的效果基本一致），这样将可以使用全屏宽度浏览代码。</p>
<p>&nbsp;</p>
<p>代码分别在IE6.0和Firefox 6.0.0.14测试通过，不过Hide/Unfold/Fold在显示上稍有不同，即在IE下点击该链接后，链接显示的文本问下一次点击的动作名字，而在Firefox上不会改变。原因是Firefox不支持使用id.innerText = &quot;xxx&quot;;改变显示的内容（但是数据已经记下了的，只是没有显示出来而已）。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=18</link>
			<title><![CDATA[test--shoColorCode的代码发布功能]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[JavaScript]]></category>
			<pubDate>Sun,22 Jun 2008 20:19:34 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=18</guid>
		<description><![CDATA[<textarea id="codeProvider" sholang="js" shofromarea="value">function shoPause()
{
if (shoPlayer.playState==3)
shoPlayer.controls.pause();
else if (shoPlayer.playState==2)
shoPlayer.controls.play();
}
function getState(state)
{
switch (state)
{
case 1: return &quot;[播放已停止&quot;;
case 2:
if (quickBackFor == 0)
return &quot;[播放已暂停&quot;;
else if (quickBackFor &gt; 0)
return &quot;[快进中...&quot;;
else
return &quot;[快退中...&quot;;
case 3: return &quot;[正在播放...&quot;;
case 4: return &quot;[向前搜索中...&quot;;
case 5: return &quot;[向后搜索中...&quot;;
case 6: return &quot;[缓冲处理中...&quot;;
case 7: return &quot;[等待反应中...&quot;;
case 8: return &quot;[已播放完毕&quot;;
case 9: return &quot;[连接媒体中...&quot;;
case 10: return &quot;[已准备就绪&quot;;
default: return &quot;[数据读取中...&quot;;
}
}
function setInfo()
{
infoReporter = ++infoReporter % 48;
switch (infoReporter)
{
case 0:
theReporter = &quot; (设计制作：shosh)&quot;;
break;
case 4:
theReporter = &quot; (作者Blog：http:\/\/www.cnitblog.com\/shosh\/)&quot;;
break;
case 10:
theReporter = &quot; (作者QQ：124727276)&quot;;
break;
case 15:
theReporter = &quot; (最后修改时间：&quot; + document.lastModified + &quot;)&quot;;
break;
case 20:
theReporter = &quot; (最后修改内容：重新排序后添加当前播放歌曲到回放列表。)&quot;;
break;
case 25:
theReporter = &quot; (鼠标移至页面左上角显示播放器界面)&quot;;
break;
case 30:
theReporter = &quot; (在播放器界面上右击鼠标可打开曲目列表窗口)&quot;;
break;
case 35:
theReporter = &quot; (在曲目列表窗口可进行播放、排序、查找等各种操作)&quot;;
break;
case 40:
theReporter = &quot; (08年2月4日成功完成滚动显示歌词功能)&quot;;
break;
default:
break;	//do nothing
}
}
</textarea><br /><textarea id="codeProvider" shofromarea="value">function shoPause()
{
if (shoPlayer.playState==3)
shoPlayer.controls.pause();
else if (shoPlayer.playState==2)
shoPlayer.controls.play();
}
function getState(state)
{
switch (state)
{
case 1: return &quot;[播放已停止&quot;;
case 2:
if (quickBackFor == 0)
return &quot;[播放已暂停&quot;;
else if (quickBackFor &gt; 0)
return &quot;[快进中...&quot;;
else
return &quot;[快退中...&quot;;
case 3: return &quot;[正在播放...&quot;;
case 4: return &quot;[向前搜索中...&quot;;
case 5: return &quot;[向后搜索中...&quot;;
case 6: return &quot;[缓冲处理中...&quot;;
case 7: return &quot;[等待反应中...&quot;;
case 8: return &quot;[已播放完毕&quot;;
case 9: return &quot;[连接媒体中...&quot;;
case 10: return &quot;[已准备就绪&quot;;
default: return &quot;[数据读取中...&quot;;
}
}
function setInfo()
{
infoReporter = ++infoReporter % 48;
switch (infoReporter)
{
case 0:
theReporter = &quot; (设计制作：shosh)&quot;;
break;
case 4:
theReporter = &quot; (作者Blog：http:\/\/www.cnitblog.com\/shosh\/)&quot;;
break;
case 10:
theReporter = &quot; (作者QQ：124727276)&quot;;
break;
case 15:
theReporter = &quot; (最后修改时间：&quot; + document.lastModified + &quot;)&quot;;
break;
case 20:
theReporter = &quot; (最后修改内容：重新排序后添加当前播放歌曲到回放列表。)&quot;;
break;
case 25:
theReporter = &quot; (鼠标移至页面左上角显示播放器界面)&quot;;
break;
case 30:
theReporter = &quot; (在播放器界面上右击鼠标可打开曲目列表窗口)&quot;;
break;
case 35:
theReporter = &quot; (在曲目列表窗口可进行播放、排序、查找等各种操作)&quot;;
break;
case 40:
theReporter = &quot; (08年2月4日成功完成滚动显示歌词功能)&quot;;
break;
default:
break;	//do nothing
}
}
</textarea>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=1</link>
			<title><![CDATA[A标签中通过href和onclick传递的this对象]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[JavaScript]]></category>
			<pubDate>Tue,27 May 2008 18:40:27 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=1</guid>
		<description><![CDATA[在blog的后台管理中允许为一个分类添加一个地址，但是不好添加onclick事件。想传递当前对象给一个函数，于是就将这个URL写成&#34;Javascript:shoControlSidebar(this)&#34;，可是结果发现这并不可行，传递过去的参数是一个对象，但是却得不到任何其他信息。我想得到的是innerText，而这个this并非指向它所在的A标签。这是&lt;a href=&#34;Javascript:shoControlSidebar(this)&#34;&gt;和&lt;a href=&#34;javascript:void(0)&#34; onclick=&#34;shoControlSidebar(this)&#34;&gt;不同的地方。<br/><br/>当使用onclick=&#34;shoControlSidebar(this)&#34;的时候，解释器会给他包装一个匿名函数，变成了：<br/>&nbsp;&nbsp;a.onclick = function anonymous()<br/>&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shoControlSidebar(this);&nbsp;&nbsp; <br/>&nbsp;&nbsp;}<br/>这个this指的就是a这个对象，而使用href的方式时，由于是一个地址，这个this就无处可指了。]]></description>
		</item>
		
</channel>
</rss>
