1.2 计算机中的信息表示
数值数据的表示方法(定点数与浮点数)
重要程度:8 分
<h2>1.2 计算机中的信息表示 - 数值数据的表示方法</h2>
<h3>1. 定点数</h3>
<p>定点数是将小数点固定在某一位置的数值表示方法。通常分为整数和纯小数两种。</p>
<h4>1.1 整数</h4>
<p>整数的小数点固定在最低位的右边,即没有小数部分。</p>
<ul>
<li><strong>无符号整数:</strong>所有位都用于表示数值,范围为 0 到 \(2^n - 1\),其中 n 是位数。</li>
<li><strong>有符号整数:</strong>最高位为符号位,0 表示正数,1 表示负数。范围为 \(-2^{n-1}\) 到 \(2^{n-1} - 1\)。</li>
</ul>
<h4>1.2 纯小数</h4>
<p>纯小数的小数点固定在最高位的左边,即没有整数部分。</p>
<ul>
<li><strong>无符号纯小数:</strong>范围为 0 到 1 - \(2^{-n}\),其中 n 是位数。</li>
<li><strong>有符号纯小数:</strong>最高位为符号位,范围为 -1 + \(2^{-n}\) 到 1 - \(2^{-n}\)。</li>
</ul>
<h4>例题 1.1</h4>
<p>将十进制数 5 转换为 8 位二进制无符号整数。</p>
<pre>
5 的二进制表示为:0000 0101
</pre>
<h4>例题 1.2</h4>
<p>将十进制数 -5 转换为 8 位二进制有符号整数(补码表示)。</p>
<pre>
5 的二进制表示为:0000 0101
取反得:1111 1010
加 1 得:1111 1011
所以 -5 的补码表示为:1111 1011
</pre>
<h3>2. 浮点数</h3>
<p>浮点数是将数值表示为尾数和阶码两部分,类似于科学计数法。IEEE 754 标准是最常用的浮点数表示标准。</p>
<h4>2.1 IEEE 754 单精度浮点数</h4>
<ul>
<li><strong>总长度:</strong>32 位</li>
<li><strong>符号位 S (1 位):</strong>0 表示正数,1 表示负数</li>
<li><strong>阶码 E (8 位):</strong>偏置值为 127,实际阶码 = E - 127</li>
<li><strong>尾数 M (23 位):</strong>隐含的最高位为 1,实际尾数 = 1.M</li>
</ul>
<h4>2.2 IEEE 754 双精度浮点数</h4>
<ul>
<li><strong>总长度:</strong>64 位</li>
<li><strong>符号位 S (1 位):</strong>0 表示正数,1 表示负数</li>
<li><strong>阶码 E (11 位):</strong>偏置值为 1023,实际阶码 = E - 1023</li>
<li><strong>尾数 M (52 位):</strong>隐含的最高位为 1,实际尾数 = 1.M</li>
</ul>
<h4>例题 2.1</h4>
<p>将十进制数 5.5 转换为 IEEE 754 单精度浮点数。</p>
<pre>
1. 将 5.5 转换为二进制:101.1
2. 规格化:1.011 x 2^2
3. 阶码 = 2 + 127 = 129,二进制表示为:1000 0001
4. 尾数 = 011 0000 0000 0000 0000 0000
5. 符号位 = 0(正数)
6. 最终表示为:0 10000001 01100000000000000000000
</pre>
<h4>例题 2.2</h4>
<p>将 IEEE 754 单精度浮点数 0 10000001 01100000000000000000000 转换为十进制数。</p>
<pre>
1. 符号位 = 0,表示正数
2. 阶码 = 1000 0001 = 129,实际阶码 = 129 - 127 = 2
3. 尾数 = 1.011
4. 规格化后的值 = 1.011 x 2^2 = 101.1
5. 十进制表示为:5.5
</pre>