美文网首页
使用宏交换字节位置和置某位的值

使用宏交换字节位置和置某位的值

作者: doob_9117 | 来源:发表于2019-05-11 18:50 被阅读0次

c语言的宏定义有一个坏处同时也是好处,就是不区分类型,因此可以让c可以“动态”地处理输入参数。如下面的操作

//交换字节
#define BSWAP_8(x)  ((x) & 0xff)
#define BSWAP_16(x) ((BSWAP_8(x) << 8) | BSWAP_8((x) >> 8))
#define BSWAP_32(x) ((BSWAP_16(x) << 16) | BSWAP_16((x) >> 16))
#define BSWAP_64(x) ((BSWAP_32(x) << 32) | BSWAP_32((x) >> 32))

//交换两个变量的值
 #define SWAP(a, b) \
(((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b)))

//位操作
#define SET_REG_BIT(reg, bit) do { (reg |= (1 << (bit))); } while (0)
#define CLR_REG_BIT(reg, bit) do { (reg &= ~(1 << (bit))); } while (0)

相关文章

  • 使用宏交换字节位置和置某位的值

    c语言的宏定义有一个坏处同时也是好处,就是不区分类型,因此可以让c可以“动态”地处理输入参数。如下面的操作

  • sort方法深入

    判断回调函数的返回值,若大于0则前后交换位置,小于或等于0位置不动 返回1,大于0,则每一次的前后都要交换顺序,相...

  • 排序

    交换排序 让每个值都和它后面的值比较,如果打则交换,这样第一位置的值在一次循环后就是最小值,然后第二次循环找出第二...

  • js实现上移、下移、置顶、置底功能

    1.使用数组splice方法交换位置实现上移、下移功能2.使用数组splice、unshift、push方法实现置...

  • C/C++ basis 02

    1.写出程序打印结果 2.编码实现变量某位清0或置1 (位逻辑操作) 3.不用临时变量对a,b的值交换 4. s...

  • 3. 写代码

    1. 不使用临时临边交换数据 2. 将特定位置1,将特定位置0 特定位,置1功能——将对应的位置1,并进行 或 操...

  • C 语言实例12 - 交换两个数的值

    使用临时变量交换两个数的值 不使用临时变量交换两个数的值

  • Learn_for_Numpy

    数组转置和交换轴 转置 矩阵的行列交换 1. numpy.where (x if condition else ...

  • 【编程】python入门——函数03

    坚持! 位置参数和关键字参数使用的区别 01位置参数 print('hello','world'):是位置参数 0...

  • 排序算法

    冒泡排序 选择排序 找出最小值,然后这个最小值和最前面的数据交换位置

网友评论

      本文标题:使用宏交换字节位置和置某位的值

      本文链接:https://www.haomeiwen.com/subject/pfhdaxtx.html