[求助]用c语言,完成对一个16位的二进制数取出它的奇数位。
帮帮忙啊
搞定
#include<stdio.h>
main()
{
int i,j,b,size; //i表示数组下标,j表示移出的位数,b是输入的10进制数,size是转化的长度16位
char a[100];
printf("请输入一个数\n");
scanf("%d",&b);
//printf("请输入一个数组的长度\n");
size=16;//scanf("%d",&size);
//printf("请输入右移的为数15");
j=15;//scanf("%d",&j);
for(i=0;i<size;i++)// 转换为二进制的算法
{
{if((b>>j)&1)
a[size-1-j]='1';
else
a[size-1-j]='0';}
j--;
}
fflush(stdin);
printf("输出转化后的所有2进制数\n");
for(i=0;i<size;i++)
printf("%c",a[i]);
fflush(stdin);
printf("输出转化后的奇数2进制数,从高位起\n");
for(i=0;i<size;i+=2)
printf("%c",a[i]);
}