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

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

📝 题述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;
}


相关文章
|
3月前
|
存储
两个变量数值的交换
两个变量数值的交换
|
C语言
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换(C语言)
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换(C语言)
61 0
|
5月前
实现offsetof宏以及交换一个整数二进制奇偶位的宏
实现offsetof宏以及交换一个整数二进制奇偶位的宏
20 0
实现offsetof宏以及交换一个整数二进制奇偶位的宏
|
C语言
C语言:求两个数二进制中不同位的个数
思路: 总体思路: 把 m 异或 n 后,有几个相异就有几个1,再计算下二进制有几个1即可 (1). 编写函数:number_of_1() ,计算二进制中有几个1。 (2). 在主函数中,把 m ^ n (m 异或 n)的结果作为参数传给 number_of_1() 函数
C语言:求两个数二进制中不同位的个数
|
6月前
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
|
C语言
C语言的offsetof宏模拟和用宏实现交换奇偶位
C语言的offsetof宏模拟和用宏实现交换奇偶位
|
存储 人工智能 编译器
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
467 0
运用函数交换两个整型变量
运用函数交换两个整型变量
|
C语言
宏定义设置x二进制序列的第n个比特位为1或者0
宏定义设置x二进制序列的第n个比特位为1或者0
133 0
|
C语言
【C】替换空格,宏实现整数的二进制奇偶位交换
【C】替换空格,宏实现整数的二进制奇偶位交换
64 0
【C】替换空格,宏实现整数的二进制奇偶位交换