题目1:计算一个二进制字符串中1的数量

 private int One_Count(int Value){int temp = Value;int count = 0;while (temp > 0){temp &= (temp - 1);count++;}return count;}

代码注解:

1.如果一个二进制变量temp-1,其值会在最低1位变为0,其后位变为1。

例如一个101000-1=100111。

通过自身位于temp-1。直到temp!>0。

题目2:返回此区间内所有数字 按位与 的结果(包含 leftright 端点)。

最直观的解决方案就是迭代范围内的每个数字,依次执行按位与运算,得到最终的结果,但此方法在 [m,n][m,n] 范围较大的测试用例中会因超出时间限制而无法通过,因此我们需要另寻他路。

解法1:鉴于上述问题的陈述,我们的目的是求出两个给定数字的二进制字符串的公共前缀,这里给出的第一个方法是采用位移操作。

    private int 连续位于(int left, int right){int shift = 0;int max = right > left ? left : right;int min = left < right ? left : right;while (min < max){min = min >> 1;max = max >> 1;shift += 1;}return right << shift;}

解法2:算法叫做「Brian Kernighan 算法」,它用于清除二进制串中最右边的 1。

  private int 连续位于2(int left, int right){while (left < right){right = right & (right - 1);}return right;}

25.位运算(位与)进阶相关推荐

  1. 《算法零基础100讲》(第42讲) 位运算 (位与) 入门

    文章目录 零.写在前面 一.概念定义 1.位与的定义 2.位与运算符的简单应用 1)奇偶性判定 2)取末五位 3)消除末尾五位 4)2的幂判定 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 ...

  2. c语言位运算负数的实例_0基础学习C语言第三章:位运算

    C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移,相当与*2 >> 右移,正数高位补0,负数由计算机决定 循环左移k次 (x< ...

  3. C语言每日一练 —— 第20天:位运算

    文章目录 一.前言 二.再谈二进制 1.二进制数值表示 2.二进制加法 3.二进制减法 三.位运算简介 1.位与的定义 2.位与运算符的简单应用 1)奇偶性判定 2)取末五位 3)消除末尾五位 4)2 ...

  4. Java 位运算详解

    目录 一.Java中支持的位运算 二.位运算规则 三.逻辑运算 (一).与运算(&) 一.运算规则 二.运算流程 (二).或运算(|) 一.运算规则 二.运算流程 (三).异或运算(^) 一. ...

  5. 位运算以及位运算的应用

    位运算 什么是位运算 在计算机系统中,所有数据都是以二进制的形式进行存储,位运算就是对二进制中进行操作.所有的计算都是通过位运算进行实现的. 整数在计算机中 原码 原码是最简单的表示法,对于一个整数而 ...

  6. C语言及程序设计进阶例程-32 位运算及其应用

    贺老师教学链接 C语言及程序设计进阶 本课讲解 位运算 #include <stdio.h> int main() {unsigned short int n = 3;int i;for( ...

  7. 位运算(按位与、按位或、异或、取反)以及原码、反码、补码

    参考:运算符的计算(按位与 按位或 异或 取反) 作者:一只青木呀 发布时间: 2020-07-23 18:13:55 网址:https://blog.csdn.net/weixin_45309916 ...

  8. [Leetcode][第201题][JAVA][数字范围按位与][位运算][Brian Kernighan]

    [问题描述][中等] [解答思路] 1. 暴力 逐位与 ,只需要判断i= 0 或 i == 2147483647 的话,就跳出 for 循环即可. 时间复杂度:O(N) 空间复杂度:O(1) publ ...

  9. 位运算常用技巧分析汇总(算法进阶)

    文章目录 运算性质 异或运算的一些性质 秀秀伸手 1.只用位运算来完成两个整数相加 2.不用临时变量,交换a.b两个数的值 3.判断一个数是奇数还是偶数 3.快速计算2*n.2*n+1和n/2 4.` ...

最新文章

  1. javascript——三元操作符
  2. 20189211 《网络攻防》第五周作业
  3. python死锁案例_python避免死锁方法实例分析
  4. hive mysql hdfs关系_Hive中的数据库、表、数据与HDFS的对应关系
  5. 让DNN为您的手机提供内容
  6. aws技术峰会2018_AWS re:Invent 2018的5大公告
  7. 【Andorid X 项目笔记】禁用ListView的Fling功能(1)
  8. 100条常用写作谚语(5)(6)(7)(8)
  9. 计算机设备报废流程图,报废流程图.ppt
  10. 项目管理学习总结(10)——项目经理需要具备8点管理素质
  11. 国足0:2不敌韩国 郑智:结果遗憾 对年轻球员是财富
  12. DataTable数据存入指定路径Excel文件(套用Excel模板)
  13. mono webservice问题请教
  14. const数据成员的初始化
  15. Java集合框架学习总结
  16. C# Xamarin移动开发基础进修篇
  17. 弱口令扫描工具mysql ftp_S-X弱口令扫描工具 V1.0
  18. unity打包xcode,在iOS11设备调试报错
  19. 业聚医疗通过聆讯:上半年营收6885万美元 钱永勋为实控人
  20. Noilinux 2.0 wps2019不能输入中文解决办法!

热门文章

  1. 医疗器械——与研发有关的法律法规和标准——共勉
  2. (Java每日一谈:第四日——幸福的四象限)主流框架:Dubbo基础实战篇--Dubbo快速入门
  3. LED、CCFL、TFT屏幕三者的区别
  4. 数据分析好用的软件工具
  5. 石河子大学师生为荣获2018年“马云乡村教师奖”校友点赞
  6. 搭建基于企业微信的SCRM系统
  7. 误删系统rpc服务器不可用,rpc服务器不可用,小编教你rpc服务器不可用怎么办
  8. 【powerbi】自定义排序
  9. POJ 3691 AcWing 1053 修复DNA
  10. python 动态仪表盘_利用EXCEL的power pivot+切片器制作动态仪表盘