C语言位运算运用二:输出二进制序列中所有的偶数位和奇数位
2017-08-07 10:06
183 查看
今天来说说另外一个位运算的运用:输出二进制序列中所有偶数位和奇数位。
如果对上一篇博客内容深刻了解了的话,这一个题目应该不会有太大的难度,所以闲话少说,直接上程序:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 0;
int i = 0;
printf("请输入一个整数:");
scanf("%d",&num);
printf("这个数的二进制序列中奇数位为:\n");
for(i=0;i<32;i+=2)
{
printf("%d ",(num>>i)&1);
}
printf("\n");
printf("这个数的二进制序列中偶数位为:\n");
for(i=1;i<32;i+=2)
{
printf("%d ",(num>>i)&1);
}
printf("\n");
system("pause");
return 0;
}
拿13的二进制序列为例子,13的二进制序列为0000 0000 0000 0000 0000 0000 0000 1101,因此输出应该为1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0和0 1 0 0 0 0 00 0 0 0 0 0 0 0 0,我们来运行一下程序验证一下:
程序是输出了理想的结果,不过却不够完美……因为这是倒序输出,如果想正序输出,则要对两个循环做一下修改:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 0;
int i = 0;
printf("请输入一个整数:");
scanf("%d",&num);
printf("这个数的二进制序列中奇数位为:\n");
for(i=1;i<32;i+=2)
{
printf("%d ",(num>>(31-i))&1);
}
printf("\n");
printf("这个数的二进制序列中偶数位为:\n");
for(i=0;i<32;i+=2)
{
printf("%d ",(num>>(31-i))&1);
}
printf("\n");
system("pause");
return 0;
}
(绿色部分为修改的)
现在我们来看看输出结果:
若大家有疑惑或者更好的想法,欢迎在下方留言交流喔!
如果对上一篇博客内容深刻了解了的话,这一个题目应该不会有太大的难度,所以闲话少说,直接上程序:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 0;
int i = 0;
printf("请输入一个整数:");
scanf("%d",&num);
printf("这个数的二进制序列中奇数位为:\n");
for(i=0;i<32;i+=2)
{
printf("%d ",(num>>i)&1);
}
printf("\n");
printf("这个数的二进制序列中偶数位为:\n");
for(i=1;i<32;i+=2)
{
printf("%d ",(num>>i)&1);
}
printf("\n");
system("pause");
return 0;
}
拿13的二进制序列为例子,13的二进制序列为0000 0000 0000 0000 0000 0000 0000 1101,因此输出应该为1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0和0 1 0 0 0 0 00 0 0 0 0 0 0 0 0,我们来运行一下程序验证一下:
程序是输出了理想的结果,不过却不够完美……因为这是倒序输出,如果想正序输出,则要对两个循环做一下修改:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 0;
int i = 0;
printf("请输入一个整数:");
scanf("%d",&num);
printf("这个数的二进制序列中奇数位为:\n");
for(i=1;i<32;i+=2)
{
printf("%d ",(num>>(31-i))&1);
}
printf("\n");
printf("这个数的二进制序列中偶数位为:\n");
for(i=0;i<32;i+=2)
{
printf("%d ",(num>>(31-i))&1);
}
printf("\n");
system("pause");
return 0;
}
(绿色部分为修改的)
现在我们来看看输出结果:
若大家有疑惑或者更好的想法,欢迎在下方留言交流喔!
相关文章推荐
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 写一个函数返回参数二进制中 1 的个数,获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,并输出。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- C语言 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 1.将数组A中的内容和数组B中的内容进行交换。(数组一样大) 2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。 3.将三个数按从大到小输出。 4.求两个数的最大公约数。
- 1.写一个函数返回参数二进制中 1 的个数;2..获取一个数二进制序列中所有的偶数位和奇数位;3. 输出一个整数的每一位;4.两个int整数的二进制表达中,有多少个位不同
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列