首页 > 编程语言 >位运算算法总结

位运算算法总结

时间:2023-11-30 23:33:31浏览次数:40  
标签:总结 运算 int lowbit cin while 二进制 算法 res

如何求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;
}

 

标签:总结,运算,int,lowbit,cin,while,二进制,算法,res
From: https://www.cnblogs.com/ykycode/p/17868684.html

相关文章

  • 双指针算法总结
    双指针算法分为两类:第一类指向一个序列(更多的情况),第二类指向两个序列。基本的代码框架是:for(i=0,j=0;i<n;i++){while(j<i&&check(i,j))j++;//每道题目的具体逻辑}核心思想:运用单调性等性质,将O(n2)的算法优化到O(n)。种类:快排的划分、归......
  • 每日总结11.30
    访问者模式1、理解访问者模式的动机,掌握该模式的结构;2、能够利用访问者模式法解决实际问题。实验任务:打包员在我们课堂上的“购物车”的例子中,增加一个新的访问者:打包员,负责对购物车中货物装包。Client.javapublicclassClient{publicstaticvoidmain(String[]args......
  • 机器学习中的典型算法——卷积神经网络(CNN)
    1.机器学习的定位AI,是我们当今这个时代的热门话题,那AI到底是啥?通过翻译可知:人工智能,而人工智能的四个核心要素:-数据-算法-算力-场景然后机器学习是人工智能的一部分,机器学习里面又有新的特例:深度学习。通俗来说机器学习即使用机器去学习一部分数据,然后去预测新的数据所属......
  • 刚硬矩阵 (2) Walsh–Hadamard 变换的 "更快" 算法
    \(\newcommand{\sfT}{\mathsfT}\newcommand{\rank}{\operatorname{rank}}\)为了避免歧义,我们这里约定\[H=\begin{bmatrix}1&1\\1&-1\end{bmatrix},\]以及\(2^n\times2^n\)的Hadamard矩阵写作\(H^{\otimesn}\).令\(N=2^n\).低深度电路的算法这里我们......
  • Day14 自增自减运算符,初始Math(幂运算)
    自增自减运算符,初始Math(幂运算)以下全程idea操作重点搞清楚++--在前还是在后分清楚先自增自减还是先赋值packageoperator;publicclassDemo04{publicstaticvoidmain(String[]args){//++--自增,自减一元运算符inta=3......
  • 文心一言 VS 讯飞星火 VS chatgpt (146)-- 算法导论12.2 1题
    一、用go语言,假设一棵二叉搜索树中的结点在1到1000之间,现在想要查找数值为363的结点。下面序列中哪个不是查找过的序列?a.2,252,401,398,330,344,397,363。b.924,220,911,244,898,258,362,363。c.925,202,911,240,912,245,363。d.2,399,387,219,266,382,381,278,363。e.935,278,347,621,299,392,358,363。灵捷3......
  • 文心一言 VS 讯飞星火 VS chatgpt (146)-- 算法导论12.2 1题
    一、用go语言,假设一棵二叉搜索树中的结点在1到1000之间,现在想要查找数值为363的结点。下面序列中哪个不是查找过的序列?a.2,252,401,398,330,344,397,363。b.924,220,911,244,898,258,362,363。c.925,202,911,240,912,245,363。d.2,399,387,219,266,382,381,278,363。e.935,278,347,621,299,392,358,363。灵......
  • 11.30每日总结
    实验一:百度机器翻译SDK实验一、实验要求 任务一:下载配置百度翻译Java相关库及环境(占10%)。 任务二:了解百度翻译相关功能并进行总结,包括文本翻译-通用版和文本翻译-词典版(占20%)。 任务三:完成百度翻译相关功能代码并测试调用,要求可以实现中文翻译成英文,英文翻译成中文(占30%)。......
  • 面试题总结
    1、通信协议通信协议通常使用分层架构来组织和管理通信过程。常见的分层架构包括以下几层:物理层:物理层负责处理物理媒介上的信号传输,如电缆、光缆、无线信号等。数据链路层:数据链路层负责将物理层传来的信号转换为数据帧,并在相邻节点之间进行数据传输。网络层:网络层负责......
  • 基于FPGA的图像白平衡算法实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览    2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述       FPGA(Field-ProgrammableGateArray)是一种可编程逻辑电路,可以通过编程实现各种算法,包括图像白平衡算法。图像白平衡算法是一种用于调整图像颜色温度的方法,......