📄 unit 2-35%.htm
字号:
</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'>© 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'>·<span
style='font:7.0pt "Times New Roman"'>
</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'>·<span
style='font:7.0pt "Times New Roman"'>
</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'>·<span
style='font:7.0pt "Times New Roman"'>
</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'>·<span
style='font:7.0pt "Times New Roman"'>
</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'>·<span
style='font:7.0pt "Times New Roman"'>
</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>&</b> ), OR ( <b>|</b> ), ONE'S COMPLEMENT ( <b>~</b> ), EXCLUSIVE
OR ( <b>^</b> ), and SHIFT (<b> << </b>and <b>>> </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 & 0
== 0), but a bit <span class=SpellE>ANDed</span> with one is the bit (x & 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>
& 0x00000004) <span class=SpellE>cout</span> << "third bit
set" << <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 & 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 + -