打印一个数在二进制中的奇数位的组合和偶数位的组合。
原理:
通过位移操作符(>>)可以将偶数位置和奇数位放到第一位,然后通过按位与操作符(&)给它按位与上一个1(按位与(&):两个为1结果为1,否则就为0),这样就可以将这个位置上的数字抓到,并且通过printf打印出来。
通过位移操作符>>和按位与操作符&
打印偶数位:
00001010
|
第7位放到前面,第5位放到前面,第3位放到前面...
打印奇数位:
00001010
|
第8位放到前面,第6位放到前面,第4位放到前面...
以上是原理,不懂的可以私信。
这里举例的是10这个数字,二进制位:00001010
for循环代表是32位,更多位需要改变。如64位改成64。
代码如下: