打印整数二进制的奇数位和偶数位
改题目的意思是将一个32位的二进制数位中的奇数位和偶数位上的数字分别打出。
因为&的特性,只有和1&在一起,得出的结果才是1,在借用>>进行移位操作,使得每一个奇数位/偶数位都能进行判断是1还是0
- void Printbit(int num)
- {
- //奇数位
- for(int i=31; i>=1; i-=2)
- {
- printf("%d ", (num>>i)&1);
- }
- printf("\n");
-
-
- //偶数位
- for(int i=30; i>=0; i-=2)
- {
- printf("%d ", (num>>i)&1);
- }
- printf("\n");
- }
-
-
- //32比特位最高位 也就是第32位是符号位,不进行判断