<?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>Wut I am &#187; 计算机基础</title>
	<atom:link href="http://wutiam.net/tag/computer/feed/" rel="self" type="application/rss+xml" />
	<link>http://wutiam.net</link>
	<description>I&#039;m islet8, I&#039;m what I am</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:11:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The IEEE 754 Floating Point Format</title>
		<link>http://wutiam.net/2008/08/the-ieee-754-floating-point-format/</link>
		<comments>http://wutiam.net/2008/08/the-ieee-754-floating-point-format/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 03:45:07 +0000</pubDate>
		<dc:creator>islet8</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[计算机基础]]></category>

		<guid isPermaLink="false">http://wutiam.net/?p=64</guid>
		<description><![CDATA[最近碰到用十六进制数表示浮点小数的问题，本科没学好，现在是补习时间。 FP32（单精度浮点数） 第 31 bit 为符号位，0 表示正数，反之为负数，其读数值用 s 表示； 第 30～23 bit 共 8 bits 为指数，其读数值用 e 表示； 第 22～0 bit 共 23 bits 为分数，视为二进制纯小数，假定该小数的十进制值为 f； S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF 31 30 23 22 0 v = (-1)s × 2e-127 × 1.f 十进制浮点小数转 IEEE 754 格式的方法，以 −118.625 为例： 由于是负数，得 s = 1； 去符号后，将小数转为二进制数表示（整数部分除以 2 取整，小数部分乘以 2 [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>最近碰到用十六进制数表示浮点小数的问题，本科没学好，现在是补习时间。</p>
<p><strong>FP32（单精度浮点数）</strong></p>
<ul>
<li>第 31 bit 为符号位，0 表示正数，反之为负数，其读数值用 s 表示；</li>
<li> 第 30～23 bit 共 8 bits 为指数，其读数值用 e 表示；</li>
<li> 第 22～0 bit 共 23 bits 为分数，视为二进制纯小数，假定该小数的十进制值为 f；</li>
</ul>
<blockquote>
<pre> S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
31 30    23 22                    0</pre>
</blockquote>
<p>v = (-1)<sup>s</sup> × 2<sup>e-127</sup> × 1.f</p>
<p>十进制浮点小数转 IEEE 754 格式的方法，以 −118.625 为例：</p>
<ul>
<li>由于是负数，得 s = 1；</li>
<li>去符号后，将小数转为二进制数表示（整数部分除以 2 取整，小数部分乘以 2 取整）得 1110110.101；</li>
<li>将该二进制小数正规化，即将小数点向左（为正）或向右（为负）移动，直至形成 1.f 格式的数，得1.110110101×2<sup>6</sup>，补齐 23 bit 从而得到 f = 11011010100000000000000；移动的位数加 127 即为 e，得 e = 133 = 10000101；</li>
<li>最后得到 IEEE 754 格式：1 10000101 11011010100000000000000 = 0xC2ED4000。</li>
</ul>
<p><span id="more-68"></span><strong>FP64（双精度浮点数）</strong></p>
<ul>
<li>第 63 bit 为符号位，0 表示正数，反之为负数，其读数值用 s 表示；</li>
<li> 第 62～52 bit 共 11 bits 为指数，其读数值用 e 表示；</li>
<li> 第 51～0 bit 共 52 bits 为分数，视为二进制纯小数，假定该小数的十进制值为 f；</li>
</ul>
<blockquote>
<pre> S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
63 62       52 51                                                 0</pre>
</blockquote>
<p>v = (-1)<sup>s</sup> × 2<sup>e-1023</sup> × 1.f</p>
<p>同理推导，不在赘述。</p>
<p><small>Reference: [<a title="Wikipedia: IEEE 754-1985" href="http://en.wikipedia.org/wiki/IEEE_754">1</a>] [<a title="The IEEE Floating Point Format" href="http://people.scs.fsu.edu/~burkardt/html/ieee.html">2</a>] [<a title="32-bit IEEE-754 floating-point format" href="http://blog.csdn.net/gooseli/archive/2007/03/28/1544532.aspx">3</a>]</small></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://wutiam.net/2008/08/the-ieee-754-floating-point-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

