Sean's Note: 4月 2009

2009年4月14日 星期二

[C/C++] 更改變數的位元值

假設 int a = 0xFFFFFFF1,

 
想要將 3rd bit 設成 1,且不更動到其他 bits 的值,該怎麼用 C 來寫呢?
 
其實只要用 CLEAR 和 OR 就可以達成,什麼語言都一樣,
 
int MASK = 0x04;  // 3rd bit is what we choose
 
a &= ~MASK;  // CLEAR bit
 
a |= MASK;     //  SET bit
 
最後,
 
a = 0xFFFFFFF5
 
就是我們要結果啦!