无符号整形求bit位数字的巧妙方法------右移模2

2019-04-13 21:36发布

       看程序: #include #include #include using namespace std; string toBit32(unsigned int n) { string s; int count = 0; for(int i = 0; i < 32; i++) // 第i位置,从0计算 { int x = (n >> i) % 2; if(count++ % 4 != 0) { if(x == 0) s += "0"; else s+= "1"; } else { if(x == 0) s += " 0"; else s+= " 1"; } } reverse(s.begin(), s.end()); return s; } int main() { cout << toBit32(314159) << endl; return 0; }        结果:0000 0000 0000 0100 1100 1011 0010 1111
              不多说。