int Numberof_oddbits_evenbits(unsigned int num)//无符号整型的形参
{
int arrOdd[16] = { 0 };
int arrEven[16] = { 0 };
int i = 0;
int flag = 1;
int m = 0;
for (i = 0; i < 16; i++)//找奇数位
{
int ret = 0;
if (num & flag)//该数和‘1’进行按位与运算,结果不为零则表示这位上的值是‘1’。
{
ret = 1;
}
else
{
ret = 0;
}
arrOdd[m] = ret;//把奇数位上的值放在数组Odd中
m++;
flag = flag<< 2;
}
flag = 2; //偶数为从2开始
int j = 0;
for (i = 0; i < 16; i++)//找偶数位
{
int ret = 0;
if (num & flag)
{
ret = 1;
}
else
{
ret = 0;
}
arrEven[j] = ret; //把偶数位上的值放在数组Even中
j++;
flag = flag<< 2;
}
printf("该数的奇数位上的值是:");
for (i = 0; i < 16; i++) //打印数组Odd
{
printf("%d ", arrOdd[i]);
}
printf("\n");
printf("该数的偶数位上的值是:");
for (i = 0; i < 16; i++)//打印数组Even
{
printf("%d ", arrEven[i]);
}
return 0;
}
int main()
{
printf("请输入一个整数:");
int num = 0;
scanf_s("%d", &num);
Numberof_oddbits_evenbits(num);
system("pause");
return 0;
}
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
最新推荐文章于 2024-03-04 18:12:16 发布