⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit 2-35%.htm

📁 卡耐基梅隆大学ssd6系统级程序设计教材
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>1110<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:16'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>F<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>1111<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:17;mso-yfti-lastrow:yes'>
  <td colspan=2 style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><b><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>Table 1</span></b><span lang=EN-US
  style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
  color:black;mso-font-kerning:0pt'> Hexadecimal/binary equivalents<o:p></o:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>And the following table shows how the
hexadecimal constant 0x9A0477F3 is represented as a 32-bit word:<o:p></o:p></span></p>

<div align=center>

<table class=MsoNormalTable border=0 cellpadding=0 style='mso-cellspacing:1.5pt;
 mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>Hexadecimal<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>9<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>A<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>0<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>4<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>7<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>7<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>F<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>3<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>Binary<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>1001<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>1010<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>0000<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>0100<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>0111<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>0111<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>1111<o:p></o:p></span></p>
  </td>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>0011<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2;mso-yfti-lastrow:yes'>
  <td colspan=9 style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><b><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>Table 2</span></b><span lang=EN-US
  style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
  color:black;mso-font-kerning:0pt'> 32-bit word<o:p></o:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>How do we know <span class=SpellE>oh_my_word</span>
is really a word? Or for that matter, how do we know 0x9A0477F3 is not
represented as a string of characters? Can we actually access the bits within
the word? C does not provide direct access, for example there is no subscript
operation to access bits, nor is there a true bit data type, but there are bit
operations that are perhaps even more useful.<o:p></o:p></span></p>

<p class=MsoNormal align=left style='margin-top:12.0pt;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:10.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>&copy; Copyright 1999-2005 <span
class=SpellE>iCarnegie</span>, Inc. All rights reserved.<o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan;mso-outline-level:2'><b><span
lang=EN-US style='font-size:18.0pt;font-family:SimSun;mso-bidi-font-family:
SimSun;color:black;mso-font-kerning:0pt'>2.1.3 Bit Operations<o:p></o:p></span></b></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l9 level1 lfo8;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black;
mso-font-kerning:0pt'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span dir=LTR><span lang=EN-US style='font-size:
12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;color:black;mso-font-kerning:
0pt'><a
href="http://whu-cqc.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-data-representation/pg-bit-manipulation/pg-bit-operations/pg-bit-operations.html#a#a">AND</a>
<o:p></o:p></span></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l9 level1 lfo8;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black;
mso-font-kerning:0pt'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span dir=LTR><span lang=EN-US style='font-size:
12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;color:black;mso-font-kerning:
0pt'><a
href="http://whu-cqc.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-data-representation/pg-bit-manipulation/pg-bit-operations/pg-bit-operations.html#o#o">OR</a>
<o:p></o:p></span></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l9 level1 lfo8;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black;
mso-font-kerning:0pt'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span dir=LTR><span lang=EN-US style='font-size:
12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;color:black;mso-font-kerning:
0pt'><a
href="http://whu-cqc.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-data-representation/pg-bit-manipulation/pg-bit-operations/pg-bit-operations.html#oc#oc">ONE'S
COMPLEMENT</a> <o:p></o:p></span></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l9 level1 lfo8;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black;
mso-font-kerning:0pt'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span dir=LTR><span lang=EN-US style='font-size:
12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;color:black;mso-font-kerning:
0pt'><a
href="http://whu-cqc.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-data-representation/pg-bit-manipulation/pg-bit-operations/pg-bit-operations.html#eo#eo">EXCLUSIVE
OR</a> <o:p></o:p></span></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l9 level1 lfo8;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black;
mso-font-kerning:0pt'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span dir=LTR><span lang=EN-US style='font-size:
12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;color:black;mso-font-kerning:
0pt'><a
href="http://whu-cqc.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-data-representation/pg-bit-manipulation/pg-bit-operations/pg-bit-operations.html#s#s">SHIFT</a>
<o:p></o:p></span></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>The bit operations (and operators) in C are
AND ( <b>&amp;</b> ), OR ( <b>|</b> ), ONE'S COMPLEMENT ( <b>~</b> ), EXCLUSIVE
OR ( <b>^</b> ), and SHIFT (<b> &lt;&lt; </b>and <b>&gt;&gt; </b>). Except for
shifts, bit operations are performed independently on each bit position.<o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan;mso-outline-level:3'><b><span
lang=EN-US style='font-size:13.5pt;font-family:SimSun;mso-bidi-font-family:
SimSun;color:black;mso-font-kerning:0pt'>AND<o:p></o:p></span></b></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>The AND of two bits is 1 if and only if the
two bits are 1. AND is often used to select bits from a word as follows.
Anything <span class=SpellE>ANDed</span> with zero is zero (that is, x &amp; 0
== 0), but a bit <span class=SpellE>ANDed</span> with one is the bit (x &amp; 1
== x). Thus, to select the third bit of a word, we use a constant <i>mask</i>
that is zero except in the third bit, and that with the word. From the table on
the previous page <a href="javascript:ContentByName('pg-bit-words');">2.1.2
Grouping Bits into Words</a>, we see that the hexadecimal digit four contains
only the third bit set (counting from the right), so the mask to use is
0x00000004 (or simply 0x4 would do):<o:p></o:p></span></p>

<div align=center>

<table class=MsoNormalTable border=0 cellpadding=0 style='mso-cellspacing:1.5pt;
 mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>if (<span class=SpellE>oh_my_word</span>
  &amp; 0x00000004) <span class=SpellE>cout</span> &lt;&lt; &quot;third bit
  set&quot; &lt;&lt; <span class=SpellE>endl</span>;<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><b><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'>Example 1</span></b><span
  lang=EN-US style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:
  SimSun;color:black;mso-font-kerning:0pt'> Testing whether the third bit is
  set<o:p></o:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>Note that the if-statement evaluates as true
if it is non-zero in any bit position, so this statement correctly tests the
value of the third bit of the word.<o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;font-family:SimSun;mso-bidi-font-family:SimSun;
color:black;mso-font-kerning:0pt'>Another use of <i>and</i> is to clear a bit. To
clear just the third bit of a word, construct a mask that is zero in the third
bit and one everywhere else. Remember that x &amp; 1 == x, so wherever the mask
is one, the corresponding data bit is unchanged. The mask to use is 0xFFFFFFFB,
which has the bit representation:<o:p></o:p></span></p>

<div align=center>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -