#include <stdio.h>
// 函数:交换二进制的奇数位和偶数位
unsigned int swapBits(unsigned int num)
{
// 获取偶数位和奇数位
unsigned int evenBits = num & 0xAAAAAAAA; // 10101010101010101010101010101010
unsigned int oddBits =num & 0x55555555; // 01010101010101010101010101010101
// 将偶数位右移1位,奇数位左移1位
evenBits >>= 1;
oddBits <<= 1;
// 合并偶数位和奇数位
unsigned int ret = evenBits|oddBits;
return ret;
}
int main()
{
int i;
unsigned int num;
printf("请输入一个整数:");
scanf("%u", &num);//用于将无符号整数以十进制形式打印
printf("原始二进制序列: ");
for (i=31;i>=0;i--)
{
printf("%d",(num >>i)&1);
}
printf("\n");
unsigned int swappedNum=swapBits(num);
printf("交换后的二进制序列:");
for (i=31;i>=0;i--)
{
printf("%d",(swappedNum>>i)&1);
}
printf("\n");
return 0;
}
C语言编程 题目:交换二进制的奇数位和偶数位,内容:获取一个整数二进制序列中所有的偶数位和奇数位。分别打印二进制序列
最新推荐文章于 2024-05-30 21:35:46 发布