简单位运算

news2024/12/27 5:07:56

文章目录



  • n n n 的第 k k k 位是二进制的几

    • 我们需要用到&运算符:两位都为 1 1 1 时结果才为 1 1 1 ,否则为 0 0 0
    • 公式: n > > k & 1 n >> k \& 1 n>>k&1

  • lowbit(n)操作求解 n n n 的最后一个 1 1 1

    lowbit

    • 由此我们可以得到公式: l o w b i t ( x ) = x & ( − x ) lowbit(x) = x \& (-x) lowbit(x)=x&(x) 最终得到一个 1 1 1 后面跟着一串 0 0 0
    • 评论区dalao的方案dalao
      原理

    题目练习

    AcWing 801. 二进制中1的个数

    题目链接:https://www.acwing.com/problem/content/description/803/
    二进制1个数

    • 直接用我们刚刚的结论即可

    CODE1

    #include <queue>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int n;
    
    int lowbit(int n){
        return n & (-n);
    }
    
    int main()
    {
        cin >> n;
        
        while(n--){
            int x, ans = 0;
            cin >> x;
            
            while(x) ans++, x -= lowbit(x);		//只要x不为0,那就肯定含1
            
            cout << ans << ' ';
        }
    }
    

    ###CODE2

    #include <queue>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int n;
    
    int main()
    {
        cin >> n;
        
        while(n--){
            int x, ans = 0;
            cin >> x;
            
            while(x) ans++, x &= x - 1;
            
            cout << ans << ' ';
        }
    }
    

  • 原码、补码、反码

    三码
    • i n t   x = 10 int\ x = 10 int x=10,二进制表示为 00...01010 00...01010 00...01010
    • 对于-x我们该怎么表示呢?
      • 众所周知,计算机底层是没有减法的,所以只能靠加法来表示减法,那么就是式子: x + ( − x ) = 0 x + (-x) = 0 x+(x)=0
      • 最终运算得到 − x = 0 − x -x = 0 - x x=0x
      • 0 − x =   ˜ x ( x 取反) + 1 = − x 0 - x = \~\ x(x取反) + 1 = -x 0x= ˜xx取反)+1=x

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

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

相关文章

easyrecovery如何恢复手机数据及硬盘数据恢复方法

EasyRecovery16是一款优秀的数据恢复软件&#xff0c;不仅能够兼容windows和mac双重系统&#xff0c;同时还能够识别u盘、存储卡、手机等多种数据储存设备&#xff0c;可恢复的文件类型更是多达百余种。还贴心地准备个人版、专业版和企业版的下载&#xff0c;增加了用户的可选性…

超小尺寸安卓主板|迷你主板|联发科MTK安卓小尺寸主板

一款超小尺寸安卓主板&#xff0c;尺寸仅为43.4mm*57.6mm。这款主板采用了联发科12nm制程工艺的芯片(MT6761/MT6762/MT6765/MT8788)&#xff0c;拥有四核/八核64bit A53架构CPU&#xff0c;主频可达2.0GHz&#xff0c;功耗极低&#xff0c;性能卓越。默认内置1G16G内存&#xf…

初次尝到【C知道】的甜蜜

目录 一、场景描述 二、【C知道】使用 三、【C知道】的原理 四、【C知道】的坑 一、场景描述 最近有下面的需求&#xff1a; mysql如何通过命令查看指定表的存储引擎 习惯性在CSDN中搜文章&#xff0c;自己找。 皇天不负有心人&#xff0c;我找到了下面这个内容&#xff0…

AI模型训练——入门篇(二)

导语&#xff1a;本文主要介绍了基于BERT的文本分类方法&#xff0c;通过使用huggingface的transformers库实现自定义模型和任务。具体步骤包括&#xff1a;使用load_dataset函数加载数据集&#xff0c;并应用自定义的分词器&#xff1b;使用map函数将自定义分词器应用于数据集…

光伏开发过程中能运用到的软件有哪些?

在光伏开发过程中&#xff0c;软件的应用贯穿了整个项目生命周期&#xff0c;从设计到建设再到运营管理。下面是一些在光伏开发过程中可能用到的软件工具&#xff1a; 制图和设计软件&#xff1a;CAD软件如AutoCAD、Bentley等被广泛用于光伏系统的设计和制图。这些软件可以帮助…

装饰设计模式(常用)

装饰器模式&#xff08;装饰设计模式&#xff09; 我们这些上班族大多都有睡懒觉的习惯&#xff0c;每天早上上班时间都很紧张&#xff0c;于是很多人为了多睡一会&#xff0c;就会用方便的方式解决早餐问题。有些人早餐可能会吃煎饼&#xff0c;煎饼中可以加鸡蛋&#xff0c;…

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion (Paper reading) Yitong Jiang, The Chinese University of Hong Kong, arXiv23, Code, Paper 1. 前言 我们提出了一种具有潜在扩散的一体化图像恢复系统&#xff0c;名为AutoDIR&#xff0c;它可以…

供应链 | “利刃出鞘”——顶刊POMS论文解读:制造商借助电子商务部门入侵

论文解读者&#xff1a;肖善&#xff0c;温梓曦&#xff0c;张怡雯&#xff0c;杨子豪 编者按&#xff1a; 解密品牌商在线电商平台&#xff1a;组织结构、策略选择、三方共赢 Manufacturer encroachment with an e‐commerce division 原文作者信息 Shi, S., Wang, C., Ch…

C语言进阶指南(14)(部分字符串库函数及其模拟实现)

欢迎来到博主的专栏——C语言进阶指南 博主id&#xff1a;reverie_ly 文章目录 1、strlen&#xff08;&#xff09;——字符串长度计算函数自定义strlen函数的实现 2、strcpy——字符串拷贝函数strcpy的模拟实现 3.strcat——字符串追加函数strcat的模拟实现 4、strcmp——字符…

喜讯!安全狗入选《2024中国企业服务云图(精选版)》多个细分领域

近日&#xff0c;由吴中区人民政府、苏州市工信局指导&#xff0c;崔牛会主办&#xff0c;苏州太湖国家旅游度假区管委会协办的2023中国SaaS大会在苏州顺利举办。 作为国内云原生安全领导厂商&#xff0c;安全狗突出的多项安全能力也在大会上受到认可。 厦门服云信息科技有限公…

软件需求分析报告

《软件需求分析报告》 软件开发全套资料获取&#xff1a;点我获取

VR虚拟教育展厅,为教学领域开启创新之路

线上虚拟展厅是一项全新的展示技术&#xff0c;可以为参展者带来不一样的观展体验。传统的实体展览存在着空间限制、时间限制以及高昂的成本&#xff0c;因此对于教育领域来说&#xff0c;线上虚拟教育展厅的出现&#xff0c;可以对传统教育方式带来改革&#xff0c;凭借强大的…

【RT-DETR改进】SIoU、GIoU、CIoU、DIoU、AlphaIoU等二十余种损失函数

一、本文介绍 这篇文章介绍了RT-DETR的重大改进&#xff0c;特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体&#xff0c;如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU&#xff0c;还融合了“Alpha”思想&#xff0c;创造了一系列新的损失函数。这些组合形式的…

私域数字化建设:解锁企业融资新引擎

私域数字化建设对于增加企业融资能力的机遇是十分重要的&#xff0c;随着数字化经济的快速发展和数据技术的不断进步&#xff0c;企业需要正确认识到数据资产的重要性和私域数字化建设在提升融资能力等方面所带来的机遇。 近期&#xff0c;财政部发布了《企业数据资源相关会计…

教你设置疯狗都咬不烂的防火墙

1 安全技术和防火墙 1.1 安全技术 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安全…

一文详解Python中常用数据类型

文章目录 Python 中常用的数据类型包括&#xff1a;Python 中布尔类型(bool)Python 中的数字类型概述Pyhon中的字符串概述Python 中的List概述Python 中的元组类型(tuple)Python中的字典&#xff08;Dictionary&#xff09;Python中的集合&#xff08;Set&#xff09;Python中的…

基于STM32+定时器中断和定时器外部时钟(标准库函数讲解)

前言 本篇博客主要学习了解定时器的标准库函数&#xff0c;以及定时器中断进行LED灯的反转&#xff0c;还有定时器外部时钟获取脉冲计数功能。本篇博客大部分是自己收集和整理&#xff0c;如有侵权请联系我删除。 本篇博客主要是对通用定时器来讲解&#xff0c;功能适中比较常…

C语言进阶指南(15)(函数指针的创建与使用)

*欢迎来到博主的专栏——C语言进阶指南 博主id 文章目录 函数指针函数指针的应用——回调函数函数指针数组 函数指针 函数也有地址&#xff08;函数在调用的时候会占用内存空间&#xff0c;所以函数是有地址的&#xff09;&#xff0c;因此我们也可以用一个指针指向函数 1 函数…

OSCP系列靶场-Esay保姆级

总结 getwebshell : ftp可匿名登录 → 发现隐藏文件夹 → 发现ssh密钥 → 猜解ssh用户名 → ssh密钥登录 提 权 思 路 : 发现suid权限文件 → cpulimit提权 准备工作 启动VPN 获取攻击机IP → 192.168.45.191 启动靶机 获取目标机器IP → 192.168.179.130 信息收集-端口扫…

基于SpringBoot实现的教务查询系统

一、系统架构 前端&#xff1a;html | js | css | jquery | bootstrap 后端&#xff1a;springboot | springdata-jpa 环境&#xff1a;jdk1.7 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理员端-课程管理 03. 管理员端-学生管理 04. 管理员端-教师管理…