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

交换奇偶位:交换一个整数的二进制的奇偶位置(仅考虑正数情况)

方法二:

设计思想:

     0xAAAAAAAA 的二进制表示为 10101010...(从最低位开始)
     0x55555555 的二进制表示为 01010101...(从最低位开始)

问题:更加想不到掩码!!!!!!!!!!!!

方法一:

设计思想:

     1.在32位bit的二进制中,遍历每个字节,分别找出num的奇偶数
    (1)偶数num=2*i(i=0),奇数num=2*i+1(i=0)
    (2)将数字“1”分别左移偶/奇对应的位置,再和num相与,即可得到num二进制上的偶/奇数
     2.奇偶交换实现
    (1) (num & (1 << (2 * i))):意味着找到了num上的奇/偶数
    (2)(移动一位)将偶数左移、奇数右移,或者将偶数右移、奇数右移,都可以实现奇偶数字相互交换
    (3)交换结果【或运算】被添加到ou/ji中,这样ou/ji就会在每次循环后保存所有已处理的偶数/奇数位

问题:

想不到!根本想不到!!!!!!!!!

void swap(int num)
{int ou = 0; //用一个整数存储偶数位int ji = 0; //用一个整数存储奇数位//方法二ou = num & 0xAAAAAAAA;//掩码:获取所有偶数位ji = num & 0x55555555;ou >>= 1;//右移偶数位,左移奇数位ji <<= 1;//方法一//int i = 0;//for (i = 0; i < 32; i++)//{//	ou |= (num & (1 << (2 * i))) << 1; //将偶数位左移一位后与ou进行或运算//	ji |= (num & (1 << (2 * i + 1))) >> 1; //将奇数位右移一位后与ji进行或运算//}num = ou | ji; //将偶数位和奇数位进行或运算,得到交换后的结果printf("%d\n", num); 
}
int main()
{int num = 5;swap(num);return 0;
}

相关文章:

交换奇偶位:交换一个整数的二进制的奇偶位置(仅考虑正数情况)

方法二&#xff1a; 设计思想&#xff1a; 0xAAAAAAAA 的二进制表示为 10101010...&#xff08;从最低位开始&#xff09; 0x55555555 的二进制表示为 01010101...&#xff08;从最低位开始&#xff09; 问题&#xff1a;更加想不到掩码&#xff01;&#xff01;&#xf…...

Unity中的两种ScriptingBackend

一&#xff1a;前言 二&#xff1a;两种模式的介绍 ios&#xff1a;unity只有il2cpp模式的编译才支持64位系统&#xff0c;mono是不支持的&#xff0c;在快速开发阶段仍然支持Mono&#xff0c;但是不能再向Apple提交Mono(32位)的应用 苹果在2016年1月就要求所有新上架游戏必须支…...

vue3硅谷甄选01 | 使用vite创建vue3项目及项目的配置 环境准备 ESLint配置 prettier配置 husky配置 项目集成

文章目录 使用vite创建vue3项目及项目的配置1.环境准备2.项目配置ESLint校验代码工具配置 - js代码检测工具1.安装ESLint到开发环境 devDependencies2.生成配置文件:.eslint.cjs**3.安装vue3环境代码校验插件**4. 修改.eslintrc.cjs配置文件5.生成ESLint忽略文件6.在package.js…...

蓝牙核心规范(V5.4)10.5-BLE 入门笔记之HCI

HCI全称:HOST Constroller Interface 主机控制器接口(HCI)定义了一个标准化的接口,通过该接口,主机可以向控制器发出命令,并且控制器可以与主机进行通信。规范被分成几个部分,第一部分仅从功能的角度定义接口,不考虑具体的实现机制,而其他部分定义了在使用四种可能的…...

【计算机毕业设计】基于SpringBoot+Vue记帐理财系统的设计与实现

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…...

2023年中国研究生数学建模竞赛E题

出血性脑卒中临床智能诊疗建模 一、背景介绍 出血性脑卒中指非外伤性脑实质内血管破裂引起的脑出血&#xff0c;占全部脑卒中发病率的10-15%。其病因复杂&#xff0c;通常因脑动脉瘤破裂、脑动脉异常等因素&#xff0c;导致血液从破裂的血管涌入脑组织&#xff0c;从而造成脑部…...

基于springboot+vue的大学生科创项目在线管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

什么是文档签名证书?PDF文档怎么签名?

什么是文档签名证书&#xff1f;在“互联网”时代&#xff0c;电子合同、电子证照、电子病历、电子保单等各类电子文档无纸化应用成为常态。如何让电子文档的签署、审批具有公信力及法律效力&#xff0c;防止伪造签名、假冒签名等问题出现&#xff0c;是电子文档无纸化应用的主…...

2023年汉字小达人区级比赛倒计时2天,最新问题解答和真题练一练

今天是9月23日&#xff0c;距离2023年第十届汉字小达人区级比赛&#xff08;初赛&#xff09;的自由报名参赛时间还有2天&#xff0c;六分成长结合家长和小朋友们问的比较多的问题进行解答&#xff0c;并提供一些真题供大家练习、了解比赛题型和规则。 问题1&#xff1a;2023年…...

关于地址存放的例题

unsigned int a 0x1234; unsigned char b *(unsigned char*)&a; 上面代码大端存储和小端存储的值分别是多少&#xff1f; 大端存储的是把高位地址存放在低位地址处&#xff0c;低位存放到高位。小端是高位存放在高位&#xff0c;低位在低位。因为a是整型&#xff0c;所…...

Flume最简单使用

文章目录 一、简介1、定义2、基础架构 二、快速入门1、解压Flume2、案例一&#xff1a;监控端口号3、案例二&#xff1a;将空目录下文件 三、Flume进阶1、Flume事务2、Flume Agent内部原理3、案例一&#xff1a;监控日志4、案例二&#xff1a;多路复用和拦截器适应4.1 原理4.2 …...

第2章 Java集合

2.1 谈谈你对Java集合的理解 难度:★★★ 重点:★★★★ 白话解析 集合类的概念还是比较重要的,不仅面试经常问,实际开发中也离不开。如果能把这道题真正理解了,集合可以说基本上没问题了。 集合就用来用存数据的,它提供了对数据增删改查和统计大小等方法。在Java中集合…...

YOLOv5、YOLOv8改进:C3STR(Swin Transformer)

目录 1.介绍 2. YOLOv5、YOLOv8改进 2.1 common.py配置 2.2 yolo.py配置 2.3 yaml配置文件 1.介绍 视觉领域正在见证从 CNN 到 Transformers 的建模转变&#xff0c;纯 Transformer 架构在主要视频识别基准测试中达到了最高准确度。这些视频模型都建立在 Transformer 层之…...

AIGC百模大战

AIGC Artificial Intelligence Generated Content&#xff0c; 或者Generative Artificial Intelligence&#xff0c;它能够生成新的数据、图像、语音、视频、音乐等内容&#xff0c;从而扩展人工智能系统的应用范围。 生成式人工智能有可能给全球经济带来彻底的变化。根据高盛…...

docker jira 一键安装含PJ(docker 一键安装jira)

docker jira 一键安装含PJ&#xff08;docker 一键安装jira&#xff09; 本文仅供参考学习&#xff0c;请勿用于商业用途本文用于Jira在Docker的安装&#xff0c;仅用于记录安装方式转载请注明来源Linux安装可参考链接Windows安装可查考链接Docker一键安装Confluence PJ条件允…...

认识一下Git

目录 Git Git下载 Git安装 Git初始化 Git操作 Git、GitLab、和Eclipse是公司中软件开发常用的组合&#xff1a; 1. Git&#xff1a;Git是一种分布式版本控制系统&#xff0c;用于跟踪文件和代码的变化。它提供了管理代码仓库的功能&#xff0c;可以记录每次提交的修改&am…...

只需4步使用Redis缓存优化Node.js应用

介绍 通过API获取数据时&#xff0c;会向服务器发出网络请求&#xff0c;收到响应数据。但是&#xff0c;此过程可能非常耗时&#xff0c;并且可能会导致程序响应时间变慢。 我们使用缓存来解决这个问题&#xff0c;客户端程序首先向API发送请求&#xff0c;将返回的数据存储…...

【react基础01】项目文件结构描述

react 项目文件结构描述 &#x1f4c2; REACTWORKSPACE&#x1f4c2; node_modules&#x1f4c2; public&#x1f4c4; favicon.ico&#x1f4c4; index.html&#x1f4c4; logo192.png&#x1f4c4; logo512.png&#x1f4c4; manifest.json&#x1f4c4; robots.txt &#x1…...

光电开关-NPN-PNP

基础概念 有信号 “检测到物体/有物体遮挡” 工作原理 NPN&#xff1a;表示共正电压&#xff0c;输出负电压【只能输出低电压或者悬空 常开常闭是指 输出有没有跟“地”接通】&#xff1b; NPN NO&#xff1a;表示常态下是常开的&#xff0c;检测到物体时黑色线输出一个负电压…...

学会使用Git 和 GitHub

Git 和 GitHub 都是程序员每天都要用到的东西 —— 前者是目前最先进的 版本控制工具&#xff0c;拥有最多的用户&#xff0c;且管理着地球上最庞大的代码仓库&#xff1b;而后者是全球最大 同性交友 代码托管平台、开源社区。 在没有这两个工具时&#xff0c;编程可能是这样的…...

SoftwareTest3 - 要了人命的Bug

软件测试基础篇 一 . 如何合理的创建一个 Bug二 . Bug 等级2.1 崩溃2.2 严重2.3 一般2.4 次要 三 . Bug 的生命周期四 . 跟开发产生争执应该怎么解决 Hello , 大家好 , 又给大家带来新的专栏喽 ~ 这个专栏是专门为零基础小白从 0 到 1 了解软件测试基础理论设计的 , 虽然还不足…...

Linux系统中MySQL库的操作,实操sql代码

Linux系统中MySQL库的操作 本文主要是对linux系统下MySQL库操作的总结&#xff0c;包含创建、删除、修改数据库&#xff0c;数据库的编码格式和校验格式以及数据库的恢复和备份。 1.创建数据库 1.1基本语法&#xff1a; CREATE DATABASE [IF NOT EXISTS] db_name [create_s…...

Python基础分享之面向对象的进一步拓展

我们熟悉了对象和类的基本概念。我们将进一步拓展&#xff0c;以便能实际运用对象和类。 调用类的其它信息 上一讲中提到&#xff0c;在定义方法时&#xff0c;必须有self这一参数。这个参数表示某个对象。对象拥有类的所有性质&#xff0c;那么我们可以通过self&#xff0c;调…...

Windows安装Docker Desktop并配置镜像、修改内存占用大小

启用Hyper-V Win S 搜索控制面板 安装WSL2 第一种方法&#xff08;推荐&#xff09; 以管理员运行命令提示符&#xff0c;然后重启Docker Desktop wsl --updatewsl --set-default-version 2第2种方法去微软官网下载WSL2并安装 《微软官网下载WSL2》 配置WSL2最大内…...

Zipping

Zipping 信息收集端口扫描目录扫描webbanner信息收集 漏洞利用空字节绕过---->失败sqlI-preg_match bypass反弹shell 稳定维持 提权-共享库漏洞 参考&#xff1a;https://rouvin.gitbook.io/ibreakstuff/writeups/htb-season-2/zipping#sudo-privileges-greater-than-stock-…...

pytorch学习---实现线性回归初体验

假设我们的基础模型就是y wx b,其中w和b均为参数&#xff0c;我们使用y 3x0.8来构造数据x、y&#xff0c;所以最后通过模型应该能够得出w和b应该分别接近3和0.8。 步骤如下&#xff1a; 准备数据计算预测值计算损失&#xff0c;把参数的梯度置为0&#xff0c;进行反向传播…...

别再乱写git commit了

B站|公众号&#xff1a;啥都会一点的研究生 写在前面 在很长的一段时间中&#xff0c;使用git commit都是随心所欲&#xff0c;log肥肠简洁&#xff0c;随着代码的迭代&#xff0c;当时有多偷懒&#xff0c;返过头查看git日志就有多懊悔&#xff0c;就和写代码不写doc string…...

八大排序(一)冒泡排序,选择排序,插入排序,希尔排序

一、冒泡排序 冒泡排序的原理是&#xff1a;从左到右&#xff0c;相邻元素进行比较。每次比较一轮&#xff0c;就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 以从小到大排序为例&#xff0c;第一轮比较后&#xff0c;所有数中最大的那个数就会浮…...

泊松分布简要介绍

泊松分布是一种常见的离散概率分布&#xff0c;它用于描述某个时间段或区域内随机事件发生的次数。它得名于法国数学家西蒙丹尼泊松。 泊松分布的概率质量函数表示某个时间段或区域内事件发生次数的概率。如果随机变量 X 服从泊松分布&#xff0c;记作 X ~ Poisson(λ)&#x…...

C语言每日一题(10):无人生还

文章主题&#xff1a;无人生还&#x1f525;所属专栏&#xff1a;C语言每日一题&#x1f4d7;作者简介&#xff1a;每天不定时更新C语言的小白一枚&#xff0c;记录分享自己每天的所思所想&#x1f604;&#x1f3b6;个人主页&#xff1a;[₽]的个人主页&#x1f3c4;&#x1f…...

临沂网站建设和轶件安装/电脑优化软件哪个好用

Selenium是一个web自动化测试框架。用它可以实现web应用自动化测试。不过&#xff0c;我不只是用它来做测试&#xff0c;我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容。 作为程序员&#xff0c;我不满足于使用Selenium IDE来记录和重放宏记录。那样很蹩脚&…...

简单扁平化风格后台网站模板/网站友情链接

ExtentReports是一种想对美观的报告&#xff0c;并且查看的内容比较丰富 1&#xff0c;安装mongoDB,启动mongo服务 2&#xff0c;代码添加ExtentManager&#xff0c;ExtentTestNGITestListener这两个类&#xff0c; 3&#xff0c;运行的testng.xml中添加监听 4&#xff0c;mave…...

那个网站可以免费做风面/百度推广四川成都地区服务中心

摘要&#xff1a;在前一篇文章中我们并没有考虑配置的组件参数是什么类型&#xff0c;也没有在配置文件中指定过类型&#xff0c;那么Castle IOC是如何进行类型转换的&#xff1f;如何配置一些复杂的数据类型&#xff1f;如果有自定义的类型如何去进行类型转换&#xff1f;本文…...

扬州品牌网站设计/友链购买有效果吗

这本书是2016年8月出版的&#xff0c;一年半之后再看&#xff0c;虽然AI风口已过&#xff0c;但是由此延伸而来的概念正在引导出更深的内涵。 何谓大数据&#xff1f;作者的观点是体量大、维度高、及时性强。 为了说明数据的威力&#xff0c;书中举了许多例子。印象最深的一个是…...

小电影网站怎么做的/电商培训视频教程

论文&#xff1a;Group Sampling for Scale Invariant Face Detection 论文链接&#xff1a;http://openaccess.thecvf.com/content_CVPR_2019/papers/Ming_Group_Sampling_for_Scale_Invariant_Face_Detection_CVPR_2019_paper.pdf 这篇是发表在CVPR2019的关于人脸检测的文章…...

北京哪个网站最好/新闻 最新消息

目录 设计重点流程图伪代码 2.1. PublishEvent 2.2. SubscribeEvent 2.3. Publisher 2.4. Subscriber微服务 强一致性 3.1 Publisher 3.2 Subscriber事件总线 - 跨服务 最终一致性 4.1 Publisher & Subscriber 都开启了本地事务&#xff0c;保证了强一致性 4.2 问题场景一&…...