算法基础-位运算

news2024/11/15 7:11:37

>> (右移运算)

x >> y:表示将x的二进制值右移y位。
正数是直接右移y位,则高位(最左边)补y个0。
负数是求补码,然后右移y位,最高位补y个1,再求反码,最后再求其原码。

应用:n的二进制表示中,第k位数是几

思路:右移k位&1 

public class Main {
    public static void main(String[] args) {
        int n = 10;
        for(int k = 3; k >= 0; k --)
            System.out.print(n >> k & 1);
    }
}

返回x的最后一位1

lowbit(int x)

        x&-x = x&(~x+1)

-x为负数,-x补码 = -x原码取反+1
-x补 = -x反 + 1,-x反 = x各位取反

应用:统计x二进制中1的个数

思路:每次把x的最后一位1减掉,当x = 0就没有1了,减了多少次就是1的个数

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        while(n -- > 0) {
            int res = 0;
            int x = in.nextInt();
            while(x > 0) {
                x -= lowbit(x);
                res ++;
            }
            System.out.print(res + " ");
        }

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2092595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react|useState的异步渲染

useState 组件里面的变量可以用state来表示,setState函数是用来更新state的值的用法 let [age,setAge]useState(0); // 0是变量age的初始值异步渲染 setState是异步指定的。也就是setAge是异步执行的。执行但不是立刻渲染,而是进入到微任务队列。注意…

数值分析笔记(六)非线性方程求根

非线性方程求根 二分法 二分法是线性收敛的。 不动点 对于非线性方程 f ( x ) 0 f(x)0 f(x)0,将其转化为 x φ ( x ) x\varphi(x) xφ(x),若 x ∗ x^* x∗满足 f ( x ∗ ) 0 f(x^*)0 f(x∗)0,称 x ∗ x^* x∗为 φ ( x ) \varphi(x) φ…

基于ASO-BP原子探索优化BP神经网络实现数据预测Python实现

本文提出了一种基于ASO算法优化BP神经网络的数据预测方法。通过ASO算法对BP神经网络的权值和阈值进行优化,克服了BP神经网络易陷入局部最优解和对初始权值敏感的缺点。实验结果表明,优化后的BP神经网络在预测精度上得到了显著提升,为数据预测…

【数学建模学习手册】python基本入门使用

本专栏内容为:数学建模原理 记录学习数学建模 💓博主csdn个人主页:小小unicorn ⏩专栏分类:数学建模 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学…

【三维重建】三角网格中轴骨架线提取

三维网格中轴线提取 方法介绍实现提取 三维网格中轴线提取是计算机图形学和三维建模领域中的一个重要技术,它对于理解三维形状的拓扑结构和几何特性具有重要意义。 方法介绍 以下是几种常见的三维网格中轴线提取方法: 基于距离变换的方法 基本原理&…

海康二次开发笔记10-独立Group导入、导出及执行

独立Group导入、导出及执行 1. 界面设计 2. 添加引用 Group相当于VM中的模块,因此在调用相关接口函数前,需要引用对应的动态库IMVSGroupCs,同时将复制本地的属性改为False using IMVSGroupCs;3. 添加VmSingleModuleSetConfigControl控件 拖入控件后,设置Dock为Fill 4. 选择G…

算法的学习笔记—把数字翻译成字符串

😀前言 在日常生活中,我们经常会遇到各种编码和解码的问题。今天,我们将讨论一个有趣的问题:如何将一串数字翻译成字母,并计算出有多少种不同的翻译方法。 🏠个人主页:尘觉主页 文章目录 &#…

虚拟化设置和虚拟机相关的环境搭建

目录 0.首先声明 1.背景知识 ​编辑 2.虚拟化设置 3.安装vm15.5过程 4.安装虚拟系统 4.1下载centos7.6 4.2安装centos7.6 5.我的总结 6.我的体会 0.首先声明 我的这个教程参考的就是韩顺平老师的这个linux学习教程,但是这个韩老师的这个教程就是2020年的教…

算法如何应用,思路都在这

目录 01 问题定义 02 问题建模 03 特征工程 04 模型选择 05 模型融合 本文深入探讨了算法在不同领域的应用方法和背后的思考逻辑。作者夏师傅通过丰富的案例分析,揭示了算法如何助力产品决策、优化业务流程,并提供了实用的策略和技巧。无论您是技术专家还…

2024 年 Web 开发者必备的 30 款 CSS 工具

2024 年 Web 开发者必备的 30 款 CSS 工具 | 瑆箫博客 找到合适的 CSS 工具可能需要花费不少时间,但是这份 2024 年最棒的 30 款 CSS 工具清单,可以让你的选择变得轻松许多。无论你的 CSS 技能水平如何,这份清单都能提供调试、优化代码和提升…

Bazel 快速入门与核心知识

Bazel 快速入门与核心知识 Bazel 简介 Bazel 是一款与 Make、Maven 和 Gradle 类似的开源构建和测试工具。 它使用人类可读的高级构建语言。Bazel 支持多种语言的项目 (C/C, Java, Python, …),可为多个平台构建输出。Bazel 支持跨多个代码库和大量用户的大型代码…

2024怎么选蓝牙耳机性价比品牌?四款小白必看优选王炸机型推荐!

如今国人对蓝牙耳机的选择日益重视,蓝牙耳机作为智能的手机备件,普及率也是一升再升,但市面上很多品牌虽然宣传自己音质好和佩戴感舒适,其实性能不佳,那么2024怎么选蓝牙耳机性价比品牌?身为资深的蓝牙耳机…

复变函数在大模型中的应用

1. 导入 说来惭愧,我研究生时的研究方向是复分析,但毕业近十年来几乎没用到它。 我还记得实习时做自我介绍时,我说我的研究方向是复分析。面试官不太了解,我便解释说,这是关于对 -1 开平方得到的虚数 i 的研究。 在…

信号的捕捉

1.信号的产生 信号递达:实际执行信号的处理动作称为信号的递达 信号未决:信号从产生到递达之间的状态 进程可以阻塞某个信号 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作 注意,忽略和阻塞是不同的,只要信号阻塞就不会被递达,而忽略是递达…

【Apache Doris】数据均衡问题排查指南

原文阅读:【巨人肩膀社区博客分享】【Apache Doris】数据均衡问题排查指南 一、前提概要 当集群处于以下几种情况时,可参考本文进行问题排查。 •BE节点之间的数据不均 •单个BE节点上的多个磁盘之间的数据不均 •BE节点的上线和下线进度卡死&#…

《高等代数》两条线行列式

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:两条线行列式的固定做法为按照第一列展开。

Kafka分布式集群部署实战:跨越理论,直击生产环境部署难题与解决方案,性能调优、监控与管理策略大揭秘,轻松上手分布式消息中间件

本文介绍kafka的集群如何部署和安装,1-4章理论知识,第5章详解集群的部署,部署Kafka之前需要先部署好分布式的Zookeeper,不喜欢理论的可以直接看第5章,欢迎大家一起探讨技术! Zookeeper集群部署参考文章&…

VUE-组件间通信(三)全局事件总线

一、作用&#xff1a;任意组件间通信 二、实现 1、创建全局事件总线 new Vue({render: h > h(App),beforeCreate(){//创建全局事件总线Vue.prototype.$busthis} }).$mount(#app) 2、学生组件 触发事件 <template><div class"studentInfo"><h…

(备份)常用ASCII 8*8 点阵 以及查询显示字符的点阵

图片 #include "driver/spi_master.h" #include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "string.h" #include "driver/i2c.h" #include "esp_rom_sys.h"…

【postman如何生成python代码】

postman如何生成python代码 https://jingyan.baidu.com/article/86fae3461577c27d48121ad1.html