函数和宏实现交换二进制位

简介: 函数和宏实现交换二进制位

📝 题述1:写一个函数,可以将一个整数的二进制位的奇数和偶数位交换(注:二进制的最低位为奇数位)

💨 输入描述:无

💨 输出描述:在屏幕上输出交换后的十进制数

🔑 核心思想:分别利用位操作得到偶数和奇数位,并让它们相加即可

#include<stdio.h>
int SwapBit(int n)
{
  return ((n & 0xaaaaaaaa) >> 1) + ((n & 0x55555555) << 1);
}
int main()
{
  int n = 10;
  int ret = SwapBit(n);
  printf("%d\n", ret);
  return 0;
}

📝 题述2:写一个宏,可以将一个整数的二进制位的奇数和偶数位交换(注:二进制的最低位为奇数位)

💨 输入描述:无

💨 输出描述:在屏幕上输出交换后的十进制数

🔑 核心思想:同上

#include<stdio.h>
#define SwapBit(n)  ((n & 0xaaaaaaaa) >> 1) + ((n & 0x55555555) << 1)
int main()
{
  int n = 10;
  int ret = SwapBit(n);
  printf("%d\n", ret);
  return 0;
}


相关文章
|
C语言
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换(C语言)
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换(C语言)
70 0
|
6月前
实现offsetof宏以及交换一个整数二进制奇偶位的宏
实现offsetof宏以及交换一个整数二进制奇偶位的宏
28 0
实现offsetof宏以及交换一个整数二进制奇偶位的宏
|
6月前
|
C语言
C语言---二进制位置0或者置1
C语言---二进制位置0或者置1
|
7月前
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
|
C语言
C语言的offsetof宏模拟和用宏实现交换奇偶位
C语言的offsetof宏模拟和用宏实现交换奇偶位
|
存储 人工智能 编译器
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
502 0
运用函数交换两个整型变量
运用函数交换两个整型变量
|
C语言
宏定义设置x二进制序列的第n个比特位为1或者0
宏定义设置x二进制序列的第n个比特位为1或者0
142 0
|
C语言
【C】替换空格,宏实现整数的二进制奇偶位交换
【C】替换空格,宏实现整数的二进制奇偶位交换
72 0
【C】替换空格,宏实现整数的二进制奇偶位交换
【C语言】交换奇偶位和 offsetof 宏的实现
【C语言】交换奇偶位和 offsetof 宏的实现
【C语言】交换奇偶位和 offsetof 宏的实现