作者genghiskii (SaoAn)
看板C_and_CPP
標題[問題] 有沒有辦法直接取第幾個bit的值
時間Tue Mar 8 02:39:47 2011
小弟我現在有n個unsigned char, unsigned char一共有8 bit, 現在想做的事情是
把n個第一個bit加起來, 看有沒有超過n/2, 有的話第一個bit就是1, 反之為0
一路做到第八個bit, 最後組合而成新的一個unsigned char
請問有沒有直接取出某個bit的方法? 像Verilog可以直接打a[0]~a[7]
我現在的做法有點繞, 假如要取第一個bit, 就會變成如下
result = a & 128; //(10000000)
if(result!=0)
counter++;
多了一個and和if感覺很浪費計算時間, 請問各位有沒有什麼方法可以直接取出
某個位置的bit值呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 137.110.115.249
→ bleed1979:counter += (a >> nbit) & 1; 03/08 03:17
→ bleed1979:nbit就是bit n的意思,一般是bit0到bit7。 03/08 03:18
→ genghiskii:bleed大這個方法好聰明 小弟學了一課 03/08 04:42
推 gozha:其實你的 (a & 128) && 1 也可以 03/08 19:22