<code>#include <stdio.h> </code>
<code>unsigned </code><code>int</code> <code>set_bit(unsigned </code><code>int</code> <code>num, </code><code>int</code> <code>pos, </code><code>int</code> <code>flag) </code>
<code>{ </code>
<code> </code><code>int</code> <code>n = 1; </code>
<code> </code><code>n = n << pos; </code><code>//将n的第pos位置1,其他全為0 </code>
<code> </code><code>if</code> <code>(flag == 0) </code>
<code> </code><code>{ </code>
<code> </code><code>num = num&(~n); </code>
<code> </code><code>} </code>
<code> </code><code>else</code> <code>if</code> <code>(flag == 1) </code>
<code> </code><code>num = num | n; </code>
<code> </code><code>return</code> <code>num; </code>
<code>}</code>
調用如下:
<code>int</code> <code>a = 0x10;</code>
<code>//位置從0開始</code>
<code>a = set_bit(a,1,1);</code><code>//将a的第2位,置1,結果為10010即0x12</code>
<code></code>
本文轉自Chinayu201451CTO部落格,原文連結:http://blog.51cto.com/9233403/1971827 ,如需轉載請自行聯系原作者