当前位置: 首页 > wzjs >正文

校园二手市场网站建设方案足球比赛今日最新推荐

校园二手市场网站建设方案,足球比赛今日最新推荐,网站建设制作ppt,淘宝装修免费模板有哪些网站一、基础位运算 1.基础位运算速查表 运算符名称行为描述示例(以a60(00111100), b13(00001101)为例)&按位与同1得1,其余得0a & b → 12 (00001100)|按位或有1得1a | b → 61 (00111101)^按位异或不同得1,相同得0a ^ b →…

一、基础位运算

1.基础位运算速查表

运算符名称行为描述示例(以a=60(00111100)b=13(00001101)为例)
&按位与同1得1,其余得0a & b → 12 (00001100)
|按位或有1得1a | b → 61 (00111101)
^按位异或不同得1,相同得0a ^ b → 49 (00110001)
~按位取反0变1,1变0(含符号位)~a → -61 (补码表示)
<<左移低位补0,高位溢出丢弃a << 2 → 240 (11110000)
>>右移高位补符号位,低位溢出丢弃-8 >> 1 → -4(带符号右移)

2.位运算优先级 

完整优先级列表​(从高到低):

运算符描述示例注意事项
~按位取反~a单目运算符,最高优先级
<< >> >>>位移运算a<<2优先级低于算术运算符
&按位与a & b高于比较运算符
^按位异或a ^ b优先级高于逻辑或
``按位或`a

常见错误示例

// 错误:实际等价于 a & (1 == 0)
if (a & 1 == 0) { ... }// 正确写法
if ((a & 1) == 0) { ... }

 3.异或运算运算律

数学性质

  1. 交换律a ^ b = b ^ a
  2. 结合律(a ^ b) ^ c = a ^ (b ^ c)
  3. 自反性a ^ a = 0
  4. 恒等律a ^ 0 = a
  5. 可逆性:若 a ^ b = c,则 c ^ b = a

重要限制

  • 不满足分配律:a ^ (b & c) ≠ (a ^ b) & (a ^ c)
  • 不能直接用于非整型数据(浮点数需特殊处理)

二、高频操作技巧

1.判断二进制第x位是0还是1

public class BitCheck {// 方法1:使用位掩码(推荐,正确处理负数)public static boolean isBitSet(int n, int x) {return (n & (1 << x)) != 0;}// 方法2:右移后与1比较(注意符号位影响)public static boolean isBitSetByShift(int n, int x) {return ((n >> x) & 1) == 1;}public static void main(String[] args) {int num = 0b1001; // 二进制1001(十进制9)System.out.println(isBitSet(num, 3));    // true(第3位是1)System.out.println(isBitSet(num, 2));    // false(第2位是0)}
}

关键点:​

  • 位掩码原理1 << x 生成形如 000...100... 的掩码,与 n 进行 & 操作后,仅保留目标位
  • 负数处理:使用方法1可正确处理负数,右移方法在负数高位会补1
  • 参数校验:建议添加 if (x < 0 || x > 31) throw...

 2.将第x位修改为1

public class BitSetter {public static int setBit(int n, int x) {return n | (1 << x);}public static void main(String[] args) {int num = 0b1001; // 原值9(1001)int result = setBit(num, 2);System.out.println(Integer.toBinaryString(result)); // 1101(13)}
}

核心逻辑:​

  • 或操作特性0 | 1 = 11 | 1 = 1,保证目标位被置1
  • 示例流程
    原始值:1001
    掩码:  0100 (1 << 2)
    结果:  1101 (1001 | 0100)
  • 数据类型扩展:处理long时需用 1L << x

3:将第x位修改为0

public class BitClear {public static int clearBit(int n, int x) {return n & ~(1 << x);}public static void main(String[] args) {int num = 0b1001; // 原值9(1001)int result = clearBit(num, 3);System.out.println(Integer.toBinaryString(result)); // 0001(1)}
}

实现原理:​

  • 取反掩码~(1 << x) 生成形如 111...011... 的掩码
  • 与操作特性0 & 0 = 01 & 0 = 0,强制清除目标位
  • 操作示例
    原始值:1001
    取反掩码:0111 (~1000)
    结果:  0001 (1001 & 0111)

4.提取最右侧的1 

public class RightmostOne {// 获取最右侧1的数值(例如12=1100返回4=100)public static int getRightmostOne(int n) {return n & -n;}// 获取最右侧1的位置索引(例如12=1100返回2)public static int getRightmostOnePosition(int n) {return Integer.numberOfTrailingZeros(n & -n);}public static void main(String[] args) {System.out.println(getRightmostOne(12));       // 4 (二进制100)System.out.println(getRightmostOne(7));        // 1 (二进制001)System.out.println(getRightmostOnePosition(12)); // 2(第2位)}
}

实现原理:​

  1. 二进制补码特性-n 是 n 的二进制补码(取反+1)
  2. 位与操作n & -n 会保留最右侧的1,其他位清零
    示例:n=12 (1100)
    -n = 补码 0100
    1100 & 0100 = 0100 (十进制4)

5.清除最右侧的1 

public class ClearRightmostOne {public static int clearRightmostOne(int n) {return n & (n - 1);}public static void main(String[] args) {System.out.println(clearRightmostOne(12)); // 8 (1000 -> 清除1100的最右侧1)System.out.println(clearRightmostOne(7));  // 6 (清除0111的最右侧1得0110)System.out.println(clearRightmostOne(1));  // 0 }
}

核心逻辑:​

  1. 减1操作n-1 会将最右侧的1变为0,右侧所有0变为1
  2. 与操作n & (n-1) 清除变化的位
    示例:n=12 (1100)
    n-1=11 (1011)
    1100 & 1011 = 1000 (十进制8)

 

三.位图思想(Bitmap)​

核心概念:使用二进制位(bit)作为存储单元,通过位的位置(offset)映射数据索引,每位0/1表示存在与否。

核心优势

  1. 空间效率:1个int(32位)可存储32个状态,空间压缩率高达32倍
  2. 操作高效:位运算指令直接在寄存器执行,时间复杂度O(1)

典型应用场景

  • 海量数据去重(布隆过滤器)
  • 权限控制系统(每位代表一个权限)
  • 图像二值化处理
public class Bitmap {private int[] bits;// 初始化位图(存储maxSize个元素)public Bitmap(int maxSize) {bits = new int[(maxSize >> 5) + 1]; // 除以32并向上取整}// 设置某位为1public void set(int pos) {int arrIdx = pos >> 5;    // 确定在哪个intint bitIdx = pos & 0x1F;  // 取低5位确定具体bitbits[arrIdx] |= (1 << bitIdx);}// 检查某位是否为1public boolean get(int pos) {int arrIdx = pos >> 5;int bitIdx = pos & 0x1F;return (bits[arrIdx] & (1 << bitIdx)) != 0;}
}

http://www.dtcms.com/wzjs/74289.html

相关文章:

  • wordpress如何显示文章列表杭州百度快照优化排名
  • 网站怎么加ico百度公司招聘
  • 网站的第二域名怎么用网络营销方案模板
  • 网站建设 图片问题百度商家平台客服电话
  • 什么样的网站开发比较吃香软文推广多少钱
  • 免费流量平台哪个最好seo管理系统培训
  • 沈阳手机网站建设百度提交链接
  • 代做效果图的网站seo是什么地方
  • php网站开发文本格式设置智能网站推广优化
  • 长沙市网页设计公司昆山seo网站优化软件
  • 传奇网站模板怎么做的吗电子商务网站建设的步骤
  • 大良网站建设基本流程百度seo提高排名费用
  • wordpress 删除缩略图佛山网站seo
  • web开发框架是什么意思苏州seo优化
  • wordpress大学 视频教程宁波seo优化报价多少
  • 给别人做网站中央电视台新闻联播
  • 武汉中小企业网站制作公司本网站三天换一次域名
  • 网页设计网站开发培训单页网站seo优化
  • 建设银行的网站是什么情况软文推广一般发布在哪些平台
  • 深圳网站建设公司有哪些内容企业网站建设方案
  • 姜堰哪里有网站建设的东莞网络营销代运营
  • 泊头做网站的八宿县网站seo优化排名
  • 代做效果图网站哪家好每日新闻快报
  • 做设计网站模块的网站国际热点事件
  • 做维修广告在哪个网站公司网站如何制作
  • 免费网站优缺点凡科建站多少钱
  • 1元购网站怎么做今日新闻简讯30条
  • windows 2008 搭建网站软文模板300字
  • 如何做不同域名跳转同一个网站长沙网站seo收费标准
  • 网站开发能赚钱吗太原百度网站快速优化