自学内容网 自学内容网

打印整数二进制的奇数位和偶数位

思路:关于二进制的知识基本就是位操作符和左移右移操作符等

相关方法:求二进制中含1的个数——n&(n-1);保留原来的数——左移或右移来决定是顺序还是逆序,&1保留原来的1或0;按位异或的重要公式——a^a=0,0^a=a等

答案:

#include<stdio.h>
void func(int n)
{
int i = 0;
printf("偶数项为:");
for (i = 31; i >= 1; i -= 2)    //偶数项:因为有32位,所以第一位右移31位成为最后一位
{
printf("%d ", (n >> i) & 1);   //如果是1,&1也还是1,如果是0,&1也还是0
}
printf("\n");
printf("奇数项为:");
for (i = 30; i >= 0; i -= 2)    //奇数项:因为有32位,所以第二位右移30位成为最后一位
{
printf("%d ", (n >> i) & 1);   //如果是1,&1也还是1,如果是0,&1也还是0
}
printf("\n");
}
int main()
{
int n = 0;
scanf("%d", &n);
func(n);
return 0;
}


原文地址:https://blog.csdn.net/2301_80369371/article/details/136046318

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!