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

位运算算法总结

如何求n的二进制表示中第k位是几?

1.先把第k位移到最后一位:n >> k

2.看个位是几:x & 1

综合得到:n >> k & 1返回的是n的二进制表示中第k位

题目链接:

https://www.acwing.com/problem/content/803/

题解:

用到lowbit(x) = x & -x这个公式,它返回的是x的最后一个1以及后面的二进制数字。

代码:

#include <iostream>

using namespace std;

int lowbit(int x)
{
    return x & -x;
}

int main()
{
    int n;
    cin >> n;
    while (n--)
    {
        int x;
        cin >> x;
        
        int res = 0;
        while (x) x -= lowbit(x), res++;  // 每次减去x的最后一位1
        
        cout << res << ' ';
    }
    
    return 0;
}


http://www.kler.cn/a/152134.html

相关文章:

  • Linux:服务器管理工具宝塔(bt)安装教程
  • 利用MCMC 获得泊松分布
  • 【Docker】Swarm内部的负载均衡与VIP
  • 中间件渗透测试-Server2131(解析+环境)
  • Pycharm配置jupyter使用notebook详细指南(可换行conda环节)
  • Echarts 设备状态 甘特图
  • todesk连接ubuntu显示当前系统并无桌面环境,或无显示器,无法显示远程桌面,您需要自行安装X11桌面环境,或者使用终端文件功能
  • 【小布_ORACLE笔记】Part11-5 RMAN Backups
  • 自定义BeanPostProcessor之XssBeanPostProcessor
  • Linux C/C++高级全栈开发(后端/游戏/嵌入式/高性能网络/存储/基础架构)
  • 传统算法: Pygame 实现深度优先搜索(DFS)
  • 爱芯元智AX650N部署yolov8s 自定义模型
  • Android问题笔记四十八:蓝牙obtainMessage数据传输部分数据丢失乱序问题
  • 封装flutter webview页面
  • 【KubeSphere】基于AWS在 Linux 上以 All-in-One 模式安装 KubeSphere
  • 概率论与数理统计中常见的随机变量分布律、数学期望、方差及其介绍
  • docker 推送tar包到远程仓库
  • 互联网协议入门( 通俗易懂的网络协议层次结构讲解)
  • HAProxy简写
  • 数值分析总结