当前位置: 首页 > news >正文

交换整数的二进制奇偶位

题目:写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

假设我们举例:10

那么他的二进制就是:00000000 00000000 00000000 00001010

 

交换以后组成的新的数就是 5

 

 

怎么用写这个宏呢?

 1.分别拿出奇数位和偶数位

 1.1 用按位与拿到奇数位的值

 

1.2 用按位与拿到偶数位的值 

2.用位移操作符,取奇数位的向左移动一位,取偶数位的向右移一位 

ps:这样操作是没错的不会因为移动而丢失数值,因为取奇数的最左边一定是0不可能是1,同理取偶数位的也同样是

这里举取偶数的为例:

 

因为一个整形是32位,也就是4个字节

所以我们转换成代码就要       

  

 

3.把取奇偶位的值按位或

 

 最后注意宏不要吝啬括号!!!

http://www.lryc.cn/news/305549.html

相关文章:

  • 在做了frp的实验室服务器不同端口间传输文件
  • 数据结构链表力扣例题AC(3)——代码以及思路记录
  • C++初阶:容器适配器priority_queue常用接口详解及模拟实现、仿函数介绍
  • 提取淘宝店铺联系方式的爬虫工具
  • Eureka服务搭建
  • SORA技术报告
  • Python Web开发记录 Day1:HTML
  • 六、回归与聚类算法 - 模型保存与加载
  • Spring事务模板及afterCommit存在的坑
  • 【区块链】联盟链
  • Oracle case when end和decode的区别
  • Java导出pdf格式文件
  • Socket、UDP、TCP协议和简单实现基于UDP的客户端服务端
  • 发布订阅模式:观察者模式的一种变体
  • TiDB离线部署、Tiup部署TiDB
  • 10GBase-T万兆电口模块助力数据中心实现高效数据传输
  • 使用Docker中部署GitLab 避坑指南
  • 我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项
  • 鼠标右键助手专业版 MouseBoost PRO for Mac v3.3.6中文破解
  • React学习计划-react-hooks补充
  • KTV点歌系统vue+springboot音乐歌曲播放器系统
  • vue video 多个视频切换后视频不显示的解决方法
  • 多态与代码屎山
  • Git基本操作(2)
  • 编程笔记 Golang基础 023 切片
  • qt 软件发布(Windows)
  • 《汇编语言》- 读书笔记 - 第11章-标志寄存器
  • 1.QT简介(介绍、安装,项目创建等)
  • 【服务器】服务器推荐
  • 信号系统之线性图像处理