首页 > 其他分享 >位运算知识点概览

位运算知识点概览

时间:2024-07-22 15:25:32浏览次数:22  
标签:count 知识点 运算 int 0101 概览 number bit

前言

计算机位运算是处理整数值的基本操作,直接在二进制位上进行操作。理解位运算的要点对于编程和优化代码非常有用。以下是位运算的主要操作和一些常见的应用:

1. 基本位运算操作

与运算(AND) &
  • 将两个数的对应位进行逻辑与操作。
  • 例子:0101 & 0011 = 0001
或运算(OR) |
  • 将两个数的对应位进行逻辑或操作。
  • 例子:0101 | 0011 = 0111
异或运算(XOR) ^
  • 将两个数的对应位进行逻辑异或操作,不同则为1,相同则为0。
  • 例子:0101 ^ 0011 = 0110
非运算(NOT) ~
  • 将一个数的所有位取反(0变1,1变0)。
  • 例子:~0101 = 1010(假设4位操作)
左移运算(Shift Left) <<
  • 将一个数的所有位向左移动,右边补0。
  • 例子:0101 << 1 = 1010
右移运算(Shift Right) >>
  • 将一个数的所有位向右移动,左边补符号位(对于有符号数)或0(对于无符号数)。
  • 例子:0101 >> 1 = 0010

知识要点

与、或、非、异或、左移、右移

拓展应用

  • 异或规则:

    x^x=0

    0^x=x

  • 长度为n的掩码:

    (1>>n)-1

  • 数字x移除特定位n:1移动特定位取非后与

    x&~(1<<n)

  • 数字x翻转特定位n:特定位异或1翻转

    x^(1<<n)

  • 比特位x翻转:

    x^1

  • 数字x取非:

    ~x

  • 数字x不存在连续的bit位为1:错位后与是否为0

    (x&(x>>1))==0

  • 字符串字符比特位标记:bitArray为转换后的数字,c为当前的字符

    bitArray|=1<<(c-'a')

  • 一个字符串是否包含另一个字符串:字符串转换成对应数字后比较

    bitArray_1&bitArray_2=bitArray_1

  • 数字i转换为n+1位的二进制比特位字符,避免高位为0丢弃。

    Integer.toBinaryString((1 << n) | i)

  • 清整数number的最后位比特位

    number=number&(number-1)

  • bit位逐步比较

public static int countBits(int number) {
        int count = 0;
        while (number != 0) {
            count += number & 1; // Check the least significant bit
            number >>= 1; // Right shift by 1
        }
        return count;
    }

  •  bit位尾数清零

public static int countBits(int number) {
        int count = 0;
        while (number != 0) {
            number &= (number - 1); 
            count++;
        }
        return count;
    }

  • 判断一个数是否是2的幂(只有一个bit位为1)

boolean isPowerOfTwo(int x) {
    return x > 0 && (x & (x - 1)) == 0;
}

标签:count,知识点,运算,int,0101,概览,number,bit
From: https://blog.csdn.net/acuteeagle01/article/details/140606341

相关文章

  • SD模块知识点
    一、销售公司组织架构公司代码(四位编码)销售组织分销渠道产品组科目表(Chartofaccount和Companycode间是一对多的关系)-公司代码-销售组织-分销渠道-产品组二、销售范围和工厂以及公司的关系图一个销售组织只能对应一个公司。但一个公司可以对应多个销售组织。一个销......
  • 【AI资讯早报】AI科技前沿资讯概览:2024年7月22日早报
    【AI资讯早报,感知未来】AI科技前沿资讯概览,涵盖了行业大会、技术创新、应用场景、行业动态等多个方面,全面展现了AI领域的最新发展动态和未来趋势。1.欧盟推进人工智能监管立法近日,欧盟在《欧盟官方公报》上正式公布了其人工智能法案,标志着欧洲在AI监管领域迈出了重要一步。该......
  • 【机器学习】机器学习的基本知识点(包括背景、定义、具体内容、功能、使用场景、操作、
    引言机器学习是一门涉及多个领域的交叉学科,它主要研究如何让计算机模拟或实现人类的学习行为,以获取新的知识或技能,从而改善系统性能。它是人工智能的核心部分,并且与概率论、统计学、逼近论、凸分析、算法复杂度理论等多个学科相关。文章目录引言一、机器学习的背景二......
  • Java基本语法篇 [2](运算符与键盘输入流程详解)
    ......
  • leetcode位运算(1684. 统计一致字符串的数目)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。后续开始专项练习。描述实现原理与步骤1.本题重点掌握相应字符bit位的编码规则2.bitArray和tempBitArray或之后还等于bitArray,说明bitArray包含tempBitArray代码实现classSolution{publ......
  • ChatGPT:Java的双冒号运算符(::)
    ChatGPT:Java的双冒号运算符(::)为什么说双冒号运算符(::)通过引用现有的方法或构造器,简化了Lambda表达式的定义在Java中,双冒号运算符(::)是用于方法引用的符号。方法引用是一种更简洁、更直观的方式来表示Lambda表达式。它通过引用现有的方法或构造器,简化了Lambda表达式的定义......
  • Python 中的模 (%) 运算符如何处理负数?
    %运算符在Python中到底是如何工作的,特别是在涉及负数时?例如,为什么-5%4求值为3,而不是-1?在Python中,模运算符(%)遵循以下规则:a%b=a-(b*floor(a/b))其中:a是被除数。......
  • 我心中的王者:Python-第2章 认识变量与基本数学运算
    我心中的王者:Python-第2章认识变量与基本数学运算本章将从基本数学运算开始,一步一步讲解变量的使用与命名,接着介绍Python的算术运算。2-1用Python做计算假设读者到麦当劳打工,一小时可以获得120元时薪,如果想计算一天工作8小时,可以获得多少工资?我们可以用计算器执行“1......
  • python中逗号运算符的含义
    我理解了python中逗号运算符的简单概念。例如,x0,sigma=0,0.1表示x0=0,sigma=0.1。但我获得了一个代码,其中有一行如下所示。y,xe=np.histogram(np.random.normal(x0,sigma,1000))其中y和xe的输出如下。yOut[10]:array([3,17,58,136,216,25......
  • NumPy 广播数组是否会在二进制运算期间创建?
    我有两个numpy.ndarray具有不同形状的实例。如果我添加这两个数组,它们之间将发生广播:importnumpyasnpx=np.array([1,2,3])y=np.array([[2,3,5],[7,11,13]])print(x+y)#[[358]#[81316]]广播数组会被创建吗?也就......