位运算技巧

获取某个10进制数值的二进制最高位

public class Main {public static void main(String[] args) {// 调用 highBit 函数,传入参数 67int result = highBit(67);// 输出结果的二进制表示System.out.println(Integer.toBinaryString(result));  // 输出 1000000}/*** 找到整数中最高位的1所在的位置* @param x 输入的整数* @return 最高位的1所在的位置*/public static int highBit(int x) {// 输出输入整数的二进制表示System.out.println(Integer.toBinaryString(x));  // 输出 1000011// 1000011 | 0100001 => 1100011  从左到右第二位补1x = x | (x >> 1);// 输出经过第一次位运算后的结果System.out.println(Integer.toBinaryString(x));  // 输出 1100011// 1100011 | 0011000 => 1111011  从左到右第三、四位补1x = x | (x >> 2);// 输出经过第二次位运算后的结果System.out.println(Integer.toBinaryString(x));  // 输出 1111011// 1111011 | 0000111 => 1111111  从左到右第五、第六、第七位补零x = x | (x >> 4);// 输出经过第三次位运算后的结果System.out.println(Integer.toBinaryString(x));  // 输出 1111111// 1111111 | 0000000 => 1111111  从左到右第八、第九、第十、第十一、第十二、第十三、第十四、第十五位补零x = x | (x >> 8);// 输出经过第四次位运算后的结果System.out.println(Integer.toBinaryString(x));  // 输出 1111111// 1111111 | 0000000 => 1111111  从左到右第十六、第十七、第十八、第十九、第二十、第二十一、第二十二、第二十三、第二十四、第二十五、第二十六、第二十七、第二十八、第二十九、第三十位补零x = x | (x >> 16);// 输出经过第五次位运算后的结果System.out.println(Integer.toBinaryString(x));  // 输出 1111111// (1111111 + 1) >> 1 => 10000000 >> 1 => 1000000  =>  64return (x + 1) >> 1;}
}

判断值x是否包含值y,其中y是2的n次方

m & n == n

如果为true,则包含,否则不包含

反向器 (NOT Gate)

反向器01
输出10

与门 (AND Gate)

与门01
000
101

与非门

与非门01
011
110

或门

或门01
001
111

或非门

或非门01
010
100

异或门

异或门01
001
110

 

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

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

相关文章

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion替换背景

在Stable Diffusion软件中,使用ControlNet+模型实现固定物体批量替换背景 出图的流程。 一、准备好图片 1.你需要准备好一些白底图或者透明底图用于训练模型。 2.你需要准备同样角度的其他背景色底图用于ControlNet勾线 3.注意检查你的图片尺寸,是否为1:1,…

离散型随机变量的分布律(也称概率质量函数:probability mass function, PMF)

设是一个离散型随机变量,可能的取值为,取各个值的概率记为: (1) 其中 并且, 公式(1)就称为离散型随机变量的分布律,也称概率质量函数:probability ma…

svn使用步骤

服务器端主要用来创建仓库,然后供客户端去访问与下载。 客户端: 图形化界面的使用:这里使用的是tortoise工具 1.创建一个文件夹作为自己的本地仓库目录 2.鼠标右键文件夹,在菜单中点击SVN checkout 3.找个图 这一步骤相当于git中…

最新版xposed编写教程

环境: andriod studio2023.1.1 jdk17 gradle8.2 流程: 1.新建项目,选empty views activity即可(其他也可) 2.语言选java,其他路径名称等暗战自己需要随便改,然后点击finish 3.修改AndroidMan…

调用接口 Promise.all的简单使用方式

created() {const requests [axios.get(/api/data1),axios.get(/api/data2),axios.get(/api/data3)];Promise.all(requests).then(responses > {// 处理响应数据const data1 responses[0].data;const data2 responses[1].data;const data3 responses[2].data;// ...}).c…

茶室茶楼计时计费软件,软件中的商品管理计时操作教程

一、前言 茶室在营业的时候,不但需要计时间,同时还需要管理商品入库出库库存等管理。这就需要一款实用的操作简单的管理软件。 下面以 佳易王茶社计时计费软件V18.0为例说明,其他版本可以参考本教程。 软件下载或技术支持可以点击最下方官…

【Python基础】线程

文章目录 [toc]线程与进程的区别与联系同步任务示例 并发任务示例 线程方法thread_object.start()thread_object.join()thread_object.setDaemon()thread_object.current_thread() 线程与进程的区别与联系 线程是可以被计算机CPU调度的最小单元进程是计算机分配资源&#xff0…

和利时DCS数据采集

在工业自动化领域,和利时DCS(分布式控制系统)被广泛应用,它对于工厂的生产过程和设备管理起到了重要的作用。然而,对于和利时DCS数据的采集,很多工厂面临着一些难点。本文将介绍和利时DCS的概述&#xff0c…

C语言—每日选择题—Day42

第一题 1. 下面程序输出的结果是&#xff08;&#xff09; #include <stdio.h> int main () {int x;x printf("I See, Sea in C");printf("x%d" , x); } A&#xff1a;2 B&#xff1a;随机值 C&#xff1a;都不是 D&#xff1a;15 答案及解析 D p…

智慧港口解决方案:PPT全文69页,附下载

关键词&#xff1a;智慧港口解决方案&#xff0c;数字化港口&#xff0c;智慧港口发展现状与展望&#xff0c;智慧码头&#xff0c;智慧港口发展趋势 一、智慧港口建设背景 随着数字经济、智慧交通发展&#xff0c;强调“要大力发展智慧交通和智慧物流”“努力打造世界一流的…

LAMP与LNMP架构

目录 一、概述 二、各组件的主要作用 一. 编译安装Apache httpd服务 二. 编译安装mysqld 服务 三. 编译安装PHP 解析环境 四. 安装论坛 LNMP架构 一、编译安装Nginx 二、编译安装MySQL服务 三、安装配置php文件 四、部署论坛 扩展 fpm参数优化 一、概述 LAMP架构是…

TCP/IP详解——UDP 协议

文章目录 1. UDP1.1 UDP 头部1.2 UDP 校验和1.3 UDP 传输过程1.4 UDP-Lite1.5 最大 UDP 数据报长度1.6 UDP 输入队列 1. UDP UDP&#xff1a;用户数据报协议&#xff08;User Datagram Protocol&#xff09;面向无连接的&#xff0c;也就是无需建立连接&#xff0c;传输不可靠。…

成绩分析。

成绩分析 题目描述 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100分&#xff0c;每个学生的得分都是一个0到100的整数。 请计算这次考试的最高分、最低分和平均分 输入描述 输入的第一行包含一个整数n(1n104)&#xff0c;表示考试人数。 接下来n行&#xff0c;每行包含…

K8S 常用命令

获取所有的pod资源&#xff1a; kubectl get pod 获取所有的命名空间&#xff1a; kubectl get namespace 获取所有的Deployment资源&#xff1a; kubectl get deployment 删除指定的deploy: kubectl delete deploy nginx 获取所有的服务&#xff1a; kubectl get serv…

用liblas将点云写入las文件

用liblas将点云写入las文件 首先配置liblas库&#xff0c;可以见上一篇博客 inline int writeLas(string lasPath, Points3Ds pt3Ds) {//point3ds是我自己定义的结构std::ofstream ofs;ofs.open(lasPath, std::ios::out | std::ios::binary);if (!ofs.is_open()) {std::cerr …

宏景eHR SQL 注入漏洞复现(CVE-2023-6655)

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR 中发现了一种被分类为关键的漏洞,该漏洞影响了Login Interface组件中/w_selfservice/oauthservlet/%2e../.%2e/genera…

C#随笔 | List.Sort()使用小计

1、使用List.Sort()对基本数值类型数据进行排序 案例&#xff1a;对存放int数据的List进行排序 其实C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代表大&#xff0c;小&#xff0c;相等。默认List的排序是升序排序。 举个例子&#xff1a;在比较函数Co…

ICV:2023 年上半年全球量子计算的进展

​ 2023年上半年&#xff0c;量子计算&#xff08;QC&#xff09;领域取得了一系列重要进展和突破&#xff0c;显示出量子计算技术的快速发展和商业应用的不断拓展。本报告从制度进步、产业生态、投融资形势、总结与展望四个方面对量子计算领域进行了系统而详细的分析。报告不仅…

You cannot access body after reading from request‘s data stream 处理办法

参考&#xff1a; https://blog.csdn.net/qq_33036061/article/details/109528061 https://www.dmge.cn/article/1028 这个错误的原因是&#xff0c;当你从 request.body 中读取数据时&#xff0c;Django 会把数据流的指针移动到数据流的末尾。这意味着你不能再次从数据流中读…

每天一点python——day94

#每天一点Python——94 #面向对象的三大特征——封装 封装&#xff1a;隐藏内部细节&#xff0c;对外提供操作方式。【提高程序的安全性】 继承&#xff1a;在函数调用时&#xff0c;使用’形参名称值‘的方式进行传参&#xff0c;传递参数的顺序可以与定义时参数顺序不同【提高…