如果是将固定位数取出:
#include <iostream>#include <math.h>using namespace std; int main(){ unsigned char c = 0x33; int b[8]; for(int i =0; i<8; i++) { b[i] = ((c & (unsigned char)pow(2, i)) >> i); cout<<b[i]<<endl; } return 0;} #include <iostream>#include <math.h>using namespace std; int main(){ unsigned char c = 0x33; int b[8]; for(int i =0; i<8; i++) { b[i] = ((c >> i) & 1); cout<<b[i]<<endl; } return 0;如果将几位取出来,就先与再移位
比如取出2-6位:10110111 & 01111100(0x7c) >> 2
(data&0x7c)>>2