<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>对影成三人 &#187; fpga</title>
	<atom:link href="http://ichaochao.com/tag/fpga/feed/" rel="self" type="application/rss+xml" />
	<link>http://ichaochao.com</link>
	<description></description>
	<lastBuildDate>Wed, 04 Jan 2012 06:58:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>关于 移位运算(shift)</title>
		<link>http://ichaochao.com/2008/05/06/bit_shift/</link>
		<comments>http://ichaochao.com/2008/05/06/bit_shift/#comments</comments>
		<pubDate>Tue, 06 May 2008 02:16:02 +0000</pubDate>
		<dc:creator>beethoven</dc:creator>
				<category><![CDATA[假装懂技术]]></category>
		<category><![CDATA[DSP]]></category>
		<category><![CDATA[fpga]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.ichaochao.com/2008/05/06/%e5%85%b3%e4%ba%8e-%e7%a7%bb%e4%bd%8d%e8%bf%90%e7%ae%97/</guid>
		<description><![CDATA[移位（bit shifting）
移位只对整数运算起作用。通过移位进行2的整数次幂的乘除法要比直接进行乘法运算快很多（当然比除法运算更快），这是一个基本常识。
为了理解它的用法，考虑下面这几个公式：
x &#60;&#60; y = x * 2 y
x &#62;&#62; y = x / 2 y
Andr LaMothe在他的《Tricks of the Game Programming Gurus》一书中大量的阐述了这方面的内容。在某些情况下，这种方法可以带来巨大的回报。思考下面的这段简化了的代码：
i* = 256;
与之对应的
i = i &#60;&#60; 8;
在逻辑上它们完全相同。对于这个简单的例子，编译器很可能会自动将第一条语句转换为第二句，但是当你进行更复杂的计算时（比如i = i &#60;&#60; 8 + i &#60;&#60; 4等于i *= 272），编译器可能就无能为力了。
]]></description>
			<content:encoded><![CDATA[<p>移位（bit shifting）<br />
移位只对整数运算起作用。通过移位进行2的整数次幂的乘除法要比直接进行乘法运算快很多（当然比除法运算更快），这是一个基本常识。<span id="more-6"></span><br />
为了理解它的用法，考虑下面这几个公式：</p>
<p>x &lt;&lt; y = x * 2 y<br />
x &gt;&gt; y = x / 2 y</p>
<p>Andr LaMothe在他的《Tricks of the Game Programming Gurus》一书中大量的阐述了这方面的内容。在某些情况下，这种方法可以带来巨大的回报。思考下面的这段简化了的代码：</p>
<p>i* = 256;</p>
<p>与之对应的</p>
<p>i = i &lt;&lt; 8;</p>
<p>在逻辑上它们完全相同。对于这个简单的例子，编译器很可能会自动将第一条语句转换为第二句，但是当你进行更复杂的计算时（比如i = i &lt;&lt; 8 + i &lt;&lt; 4等于i *= 272），编译器可能就无能为力了。</p>
]]></content:encoded>
			<wfw:commentRss>http://ichaochao.com/2008/05/06/bit_shift/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

