码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • leetcode刷题笔记——位运算


    C/C++语言中逻辑右移和算数右移共享同一个运算符>>

    如果运算数类型是unsigned则采用逻辑右移,而signed则采用算数右移。对于signed类型的数据,如果需要使用算数右移,或者unsigned类型的数据需要使用逻辑右移,都需要进行类型转换。

    1. #include
    2. using namespace std;
    3. int main(){
    4. int a=0xFFFFFFFF;
    5. cout<<(unsigned)a>>1<
    6. cout<<(a>>1)<

    常用位运算技巧:

    1. n&1,n>>=1;

    n>>=1 即 n=n>>1

    2. n=n&(n-1)

    n&(n-1):把n的二进制中,最后一个出现的1改为0

    3.异或

    异或:同0异1

    任何数和本身异或为0
    应用举例:将nums中所有数字执行异或运算,留下的结果则为出现一次的数字x

    即

    4.进位:carry=(a&b)<<1

    n & 1

    n & 1:取 n 的二进制位最后一位的值

    两个数 或 运算

    二进制运算里或运算 等价于 没有进位的加法运算 举个例子 两个32位二进制数字 一个低16位全是0 另一个高16位全是0 他们相加不会产生进位 因此在这里,或运算 等价于 加法运算

    常常用于将两个二进制数拼接起来:

    1. n = (n >> 16) | (n << 16);
    2. 将 n 的高 16 位和低 16 位交换次序,然后拼接起来

     

    妙蛙种子吃着妙脆角妙到了米奇妙妙屋,妙到家了 :

    1. class Solution {
    2. public:
    3. uint32_t reverseBits(uint32_t n) {
    4. n = (n >> 16) | (n << 16); //低16位与高16位交换
    5. n = ((n & 0xff00ff00) >> 8) | ((n & 0x00ff00ff) << 8); //每16位中低8位和高8位交换; 1111是f
    6. n = ((n & 0xf0f0f0f0) >> 4) | ((n & 0x0f0f0f0f) << 4); //每8位中低4位和高4位交换;
    7. n = ((n & 0xcccccccc) >> 2) | ((n & 0x33333333) << 2); //每4位中低2位和高2位交换; 1100是c,0011是3
    8. n = ((n & 0xaaaaaaaa) >> 1) | ((n & 0x55555555) << 1); //每2位中低1位和高1位交换; 1010是a,0101是5
    9. return n;
    10. }
    11. };

    相关题目

    190. 颠倒二进制位 - 力扣(LeetCode)

  • 相关阅读:
    只因写了一段爬虫,公司 200 多人被抓!
    智能算法与机器学习结合案例:KNN结合BBA算法,100%分类率
    vue3 setup语法糖下的定时器的使用与销毁
    在阿里云请求发短信接口去掉证书验证
    WebGIS开发基础
    做知识付费,这十大知识付费平台一定要知道
    商业智能平台BI 商业智能分析平台 如何选择合适的商业智能平台BI
    不同厂商IPC网页监控时延
    速腾激光雷达 RS M1 slam 建图
    【MySQL从入门到精通】【高级篇】(二十二)慢查询日志分析,SHOW PROFILE查看SQL执行成本
  • 原文地址:https://blog.csdn.net/weixin_53432918/article/details/132914338
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号