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

C语言交换二进制位的奇数偶数位

基本思路

我们要先把想要交换的数的二进制位给写出来假如交换13的二进制位,13的二进制位是

0000 0000 0000 0000 0000 0000 0000 1101

然后写出偶数位的二进制数(偶数位是1的)

1010 1010 1010 1010 1010 1010 1010 1010

然后写出奇数位的二进制数(奇数位是1的)

0101 0101 0101 0101 0101 0101 0101 0101

最后把奇数位的二进制数,和偶数位的二进制数都和原来的数进行按位与然后奇数位向>>1向右移动1位就挪到了偶数位,偶数位向<<1向左移一位就挪到了奇数位,最后两个移动完的二进制位按位或就得到了奇数偶数位互换,像这张图
在这里插入图片描述

下面是代码

# include<stdio.h>
int main()
{int num = 13;printf("交换前\n");for (int i = 0; i < 32; i++){if (((num >> i) & 1) == 1){printf("%d", 1);}else{printf("%d", 0);}}printf("\n");int temp = (num & 0x5555555555555555) << 1;int temp2 = (num & 0xAAAAAAAA) >> 1;int swap = temp | temp2;int a = 0;printf("交换后\n");for (int i = 0; i < 32; i++){if (((swap >> i) & 1) == 1){printf("%d", 1);}else{printf("%d", 0);}}return 0;
}

为什么打印出来是反的,那是由于在VS2022下是小端字节序存储是倒着存放的

0x5555555555555555就是奇数位
0xAAAAAAAA就是偶数位

define宏实现

同样用define宏定义也可以完成奇数偶数互换,下面是代码

# include<stdio.h>
# define SWAP(num) (num) = ((((num)&0xAAAAAAAA)>>1) | (((num)&0x5555555555555555)<<1))
int main()
{int num = 13;SWAP(num);printf("%d", num);return 0;
}

为什么define宏要打那么多括号呢,那是由于我们必须要确定好运算顺序和优先级,打括号保险一点,可以避免不可预料的后果

相关文章:

C语言交换二进制位的奇数偶数位

基本思路 我们要先把想要交换的数的二进制位给写出来假如交换13的二进制位&#xff0c;13的二进制位是 0000 0000 0000 0000 0000 0000 0000 1101然后写出偶数位的二进制数&#xff08;偶数位是1的&#xff09; 1010 1010 1010 1010 1010 1010 1010 1010然后写出奇数位的二进…...

爬虫实战三、PyCharm搭建Scrapy开发调试环境

#一、环境准备 Python开发环境以及Scrapy框架安装&#xff0c;参考&#xff1a;爬虫实战一、Scrapy开发环境&#xff08;Win10Anaconda&#xff09;搭建 PyCharm安装和破解&#xff0c;参考&#xff1a;爬虫实战二、2019年PyCharm安装&#xff08;激活到2100年&#xff09; …...

2012年认证杯SPSSPRO杯数学建模C题(第一阶段)碎片化趋势下的奥运会商业模式全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 C题 碎片化趋势下的奥运会商业模式 原题再现&#xff1a; 从 1984 年的美国洛杉矶奥运会开始&#xff0c;奥运会就不在成为一个“非卖品”&#xff0c;它在向观众诠释更高更快更强的体育精神的同时&#xff0c;也在攫取着巨大的商业价值&#…...

【Next.js】连接 MongoDB 实现基本的接口

【Next.js】连接 MongoDB 实现基本的接口 什么是 MongoDB MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解…...

中值滤波算法与SSE2指令集并行优化

中值滤波算法是经典图像处理中极为常见的操作,一般我们通过调用OpenCV或者是Matlab直接进行使用,以至于有种它本来就很容易实现且速度很快的错觉。近来用到中值滤波算法,因为不想用到OpenCV库或者Matlab而对其实现研究了一番,才发现其中有很多值得注意的细节。下面我们结合…...

2012年认证杯SPSSPRO杯数学建模B题(第二阶段)节能减排全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 节能减排、抑制全球气候变暖 B题 白屋顶计划 原题再现&#xff1a; 第二阶段问题   虽然环境学家对地球环境温度的改变有许多种不同观点&#xff0c;但大多数科学家可以达成一个基本的共识&#xff1a;近年来人类的活动&#xff0c;尤指二氧…...

NOI - OpenJudge - 2.5基本算法之搜索 - 2753:走迷宫 - 超级无敌详细题解(含多个不同算法AC代码)

点赞关注吧~ 2753:走迷宫 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 一个迷宫由R行C列格子组成&#xff0c;有的格子里有障碍物&#xff0c;不能走&#xff1b;有的格子是空地&#xff0c;可以走。 给定一个迷宫&#xff0c;求从左上角走到右下角最…...

什么是Redis数据一致性?如何解决?

在系统中缓存最常用的策略是&#xff1a;服务端需要同时维护DB和cache&#xff0c;并且是以DB的结果为准–Cache-Aside Pattern&#xff08;缓存分离模式、旁路缓存&#xff09; 读数据 单纯的读数据是不会产生数据不一致&#xff0c;只有并发下读和写才会存在数据不一致。 写…...

【办公软件】开发常用网站

文章目录 一、开发社区二、开发学习三、视图工具四、开发工具五、前端web开发工具六、开发接口官网 备用产看。 https://www.webhub123.com https://www.webhub123.com/#/home/detail?projectHashid59183272&ownerUserid22053727 java全栈只是体系&#xff1a;https://www…...

车道线检测_Canny算子边缘检测_1

Canny算子边缘检测&#xff08;原理&#xff09; Canny算子边缘检测是一种经典的图像处理算法&#xff0c;由John F. Canny于1986年提出&#xff0c;用于精确、可靠地检测数字图像中的边缘特征。该算法设计时考虑了三个关键目标&#xff1a;低错误率&#xff08;即尽可能多地检…...

kubadm部署kubernetes

什么是kubernetes Kubernetes是一款应用于集群的&#xff0c;容器自动部署、扩展和管理的开源平台&#xff0c;提供了一种以容器为中心的基础架构。利用kubernetes&#xff0c;你可以快速高效地响应客户如下请求&#xff1a; 应用程序的动态、精准部署应用程序的动态扩展无缝推…...

Sqlite插入单引号和双引号,防止sql注入

1. 方法1 sqlite3_mprintf替换sprintf,%q替换%s. 1.1. 举例 修改前代码 //修改前, hello123写入失败char sql[1000]char* sql sprintf("UPDATE table SET name %s WHERE name_id %d","hello123", 1);rc sqlite3_exec(db, sql, NULL, NULL, &err…...

代码随想录算法训练营第二十九天(回溯5)|491. 非递减子序列、46. 全排列、47. 全排列 II(JAVA)

文章目录 491. 非递减子序列解题思路源码 46. 全排列解题思路源码 47. 全排列 II解题思路源码 总结 491. 非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 …...

【CANN训练营笔记】AscendCL图片分类应用(C++实现)

样例介绍 基于PyTorch框架的ResNet50模型&#xff0c;对*.jpg图片分类&#xff0c;输出各图片所属分类的编号、名称。 环境介绍 华为云AI1s CPU&#xff1a;Intel Xeon Gold 6278C CPU 2.60GHz 内存&#xff1a;8G NPU&#xff1a;Ascend 310 环境准备 下载驱动 wget ht…...

从头开发一个RISC-V的操作系统(二)RISC-V 指令集架构介绍

文章目录 前提ISA的基本介绍ISA是什么CISC vs RISCISA的宽度 RISC-V指令集RISC-V ISA的命名规范模块化的ISA通用寄存器Hart特权级别内存管理与保护异常和中断 目标&#xff1a;通过这一个系列课程的学习&#xff0c;开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提…...

uniapp/设置桌面角标/发送系统通知/动态修改桌面应用图标/展示3d模型/仿淘宝二楼

uniapp的安卓apk图标角标设置消息数量 1、主要方法&#xff1a; 设置角标&#xff1a; plus.runtime.setBadgeNumber(999) 清除角标&#xff1a; //plus.runtime.setBadgeNumber(0)//没有效果 plus.runtime.setBadgeNumber(-1) //有效果 2、使用在具体的生命周期 1、打开app获取…...

【Java八股学习】Redis高可用 思维导图

说明 文章内容通过学习小林Coding内的优质文章后整理而来&#xff0c;整理成思维导图的方式是为了帮助自己理解、记忆和复习。如若侵权请联系删除&#xff0c;再次对小林Coding内的优质文章表示感谢。参考文章如下&#xff1a; 主从复制是怎么实现的&#xff1f;为什么要有哨…...

C++万物起源:类与对象(三)拷贝构造、赋值重载

目录 一、拷贝构造函数 1.1拷贝构造函数的概念与特征 1.2拷贝构造的实现 1.3默认构造函数 1.4拷贝构造函数典型调用场景 二、赋值运算符重载 2.1赋值运算符重载的格式 一、拷贝构造函数 1.1拷贝构造函数的概念与特征 在c语言语法中&#xff0c;我们可以将一个变量赋值给…...

JavaScript构造函数(new构造js对象与原型链prototype)

构造函数详解 铺垫&#xff1a;面向对象编程一、构造函数是什么&#xff1f;二、构造函数的作用&#xff1f;三、构造函数的执行过程&#xff1f;四、构造函数的返回值&#xff1f;五、构造函数为什么要用new关键字调用&#xff1f;六、构造函数的实例成员和静态成员&#xff1…...

【WPF应用31】WPF基本控件-ListView的详解与示例

WPF&#xff08;Windows Presentation Foundation&#xff09;是.NET框架的一个组成部分&#xff0c;它用于构建桌面应用程序的用户界面。ListView是WPF中一个非常强大的数据展示控件&#xff0c;它可以用来显示一系列的项&#xff0c;类似于Windows资源管理器中的文件列表。Li…...

【动态】江西省小型水库安全监测能力提升试点项目通过验收

近日&#xff0c;由北京国信华源科技有限公司和长江勘测规划设计研究有限责任公司联合承建的江西省小型水库安全监测能力提升试点项目圆满通过验收。 在项目业主单位的组织下&#xff0c;省项目部、特邀专家、县水利局二级项目部以及项目设计、监理、承建等单位的代表组成验收工…...

前视声呐目标识别定位(九)-声呐驱动

前视声呐目标识别定位&#xff08;一&#xff09;-基础知识 前视声呐目标识别定位&#xff08;二&#xff09;-目标识别定位模块 前视声呐目标识别定位&#xff08;三&#xff09;-部署至机器人 前视声呐目标识别定位&#xff08;四&#xff09;-代码解析之启动识别模块 …...

【详解】Windows系统安装Nginx及简单使用

【详解】Windows系统安装Nginx及简单使用 一、Nginx是什么&#xff1f; “Nginx 是一款轻量级的 HTTP 服务器&#xff0c;采用事件驱动的异步非阻塞处理方式框架&#xff0c;这让其具有极好的 IO 性能&#xff0c;时常用于服务端的反向代理和负载均衡。”Nginx 是一款 http 服…...

WebGPU vs. WebGL:前端图形技术的进化与数字孪生的崭新前景

在现代互联网时代&#xff0c;图形渲染在网页应用和数字孪生的开发中起着至关重要的作用。WebGL和WebGPU是两种前端图形技术&#xff0c;它们在处理图形和计算密集型任务时发挥着关键作用。本文将深入研究这两种技术&#xff0c;探讨它们的区别、WebGPU的优势&#xff0c;以及它…...

即刻体验 | 使用 Flutter 3.19 更高效地开发

我们已隆重推出全新的 Flutter 版本——Flutter 3.19。此版本引入了专为 Gemini 设计的新 Dart SDK、一个能让开发者对 Widget 动画实现精细化控制的全新 Widget&#xff0c;Impeller 更新带来的渲染性能提升、有助于实现深层链接的工具和对 Windows Arm64 的支持&#xff0c;以…...

Exchanger 怎么用J.U.C

Exchanger简介 Exchanger通常用来解决以下类似场景的问题&#xff0c;如下&#xff1a;两个线程间需要交换数据的问题&#xff0c;在多线程编程中&#xff0c;经常会有这样的场景&#xff1a;两个线程各自持有一些数据&#xff0c;并且需要在某个点上交换这些数据&#xff0c;…...

校园局域网钓鱼实例

Hello &#xff01; 我是"我是小恒不会java" 本文仅作为针对普通同学眼中的网络安全&#xff0c;设计的钓鱼案例也是怎么简陋怎么来 注&#xff1a;本文不会外传代码&#xff0c;后端已停止使用&#xff0c;仅作为学习使用 基本原理 内网主机扫描DNS劫持前端模拟后端…...

网络原理 - HTTP / HTTPS(3)——http响应

目录 一、认识 “状态码”&#xff08;status code&#xff09; 常见的状态码 &#xff08;1&#xff09;200 OK &#xff08;2&#xff09;404 Not Found &#xff08;3&#xff09;403 ForBidden &#xff08;4&#xff09;405 Method Not Allowed &#xff08;5&…...

Flask Python:模糊查询filter和filter_by,数据库多条件查询

数据库&#xff08;sqlalchemy&#xff09;多条件查询 前言一、filter、filter_by实现过滤查询1、filter_by()基础查询并且查询&#xff08;多条件查询&#xff09; 2、filter()like&#xff1a;模糊查询and&#xff1a;并且查询or&#xff1a;或者查询 二、all(),first(),get(…...

leetcode 热题 100(部分)C/C++

leetcode 热题 100 双指针 盛最多水的容器 【mid】【双指针】 思路&#xff1a; 好久没写代码sb了&#xff0c;加上之前写的双指针并不多&#xff0c;以及有点思维定势了。我对双指针比较刻板的印象一直是两层for循环i&#xff0c;j&#xff0c;初始时i,j都位于左界附近&…...

大学生服装网站建设策划书/青岛网站制作设计

IDEA设置不需要重启Tomcat而更新代码&#xff08;热部署&#xff09;...

建一网站要多少钱/百度收录时间

1.图形化界面启动 右击“计算机”&#xff0c;在快捷菜单中选择“管理”命令&#xff0c;如图所示&#xff0c;打开“计算机管理”对话框。也可以执行“开始”|“控制面板”|“管理工具”|“服务”来启动服务。 改成手动模式,每次电脑开机都需要点击启动服务 2. 命令行启动…...

北京市建设工程交易服务中心网站/app推广一手单平台

Python学习笔记--坐标轴刻度 参靠视频:《Python数据可视化分析 matplotlib教程》链接&#xff1a;https://www.bilibili.com/video/av6989413/?p6 所用的库及环境: IDE:Pycharm Python环境&#xff1a;python3.7 Matplotlib: Matplotlib 1.11 Numpy&#xff1a; Numpy1.15.…...

python自动写wordpress/免费网站alexa排名查询

2019年10月31日&#xff0c;奇安信CERT监测到安全研究人员_S00pY将Solr通过Velocity模板代码执行任意命令漏洞的POC放到了Github。经研判&#xff0c;该POC对Solr的多个版本有效&#xff0c;且Apache Solr官方并未发布该漏洞的补丁。不过此漏洞在默认配置下无法利用。建议受影响…...

企商网站建设/深圳seo外包

DHT11原理&#xff1a;https://blog.csdn.net/x1131230123/article/details/103665953 MSP430 G2553&#xff1a; MSP430 F5529&#xff1a; 串口端&#xff1a;...

怎么用腾讯云主机建设网站/百度seo策略

MySQL数据库安装配置和启动 1&#xff0c;下载MySQL 打开MySQL的官网www.mysql.com&#xff0c;发现有一个DOWNLOADS 点击它&#xff0c;进入到MySQL的下载页面&#xff0c;在页面的底部有一个MySQL Community Edition&#xff0c; 并且下面有一个蓝色的链接 点击这个蓝色的链接…...