[問題] 關於bitwise的問題
使用Dev c++
想請問如果要將某bit變為1,卻不影響其他bits
可以寫成
int i=11; //00001011
i = i | (1<<2); //將第二位變為1
printf("%d", i); //等於15,00001111
----------------------------------------------------------
如果反過來要將某bit變為0,卻不影響其他bits
我的想法是
int j=15; //00001111
if(j & (1<<2)) //判斷要變換的bit是否為1
j -= (1<<2) //是1就減掉
printf("%d",j); //等於11,00001011
不知道這樣的作法,有沒有問題?
或者還有沒有其他更好的作法?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.4.188
推
08/18 03:08, , 1F
08/18 03:08, 1F
→
08/18 03:21, , 2F
08/18 03:21, 2F
→
08/18 03:30, , 3F
08/18 03:30, 3F
→
08/18 03:38, , 4F
08/18 03:38, 4F
→
08/18 03:39, , 5F
08/18 03:39, 5F
→
08/18 03:43, , 6F
08/18 03:43, 6F
→
08/18 03:45, , 7F
08/18 03:45, 7F
→
08/18 03:51, , 8F
08/18 03:51, 8F
推
08/18 03:58, , 9F
08/18 03:58, 9F
→
08/18 04:14, , 10F
08/18 04:14, 10F
→
08/18 04:20, , 11F
08/18 04:20, 11F
→
08/18 08:41, , 12F
08/18 08:41, 12F
推
08/18 11:04, , 13F
08/18 11:04, 13F
推
08/18 14:43, , 14F
08/18 14:43, 14F
→
08/18 16:32, , 15F
08/18 16:32, 15F
→
08/18 20:52, , 16F
08/18 20:52, 16F
討論串 (同標題文章)