定义一个宏实现整形数字奇偶位交换(二进制位)

本文介绍了如何使用宏定义来交换一个整形数的二进制位奇偶部分。通过按位与、按位移位和按位或等操作,实现了将输入数字如10(1010)转换为5(0101)的过程。
摘要由CSDN通过智能技术生成

定义一个宏实现把一个整形的二进制位的奇偶进行交换。

例如:输入10   ->1010

          输出 5    ->0101

实现步骤:

        1.把整数的奇数位提出,将偶数位清零(按位与&上0101)

           此刻结果为:0000

        2.同样将偶数位提出,并将奇数位清零(&1010)

           此刻结果为:1010

        3.再将偶数位>>1,奇数位<<1

        4.按位或|

        5.由于32个bit太长,所以为了简洁代码,将4个bit

           用一个16进制表示,即奇数位表示为0101->5,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值