第十四届蓝桥杯集训——JavaC组第九篇——位运算符

简介: 第十四届蓝桥杯集训——JavaC组第九篇——位运算符

第十四届蓝桥杯集训——JavaC组第九篇——位运算符


这个稍微难度大一些,基础的有【&与、|或、^异或、<<左位移、>>右位移】。

我们一个一个的来看。

首先,我们学会了二进制是什么,那么我们这个二进制的核心就是二进制。

值交换

两个变量,一个x值是5,另外一个y值是7,我们需要通过自己的方式将x重新赋值成7,而y赋值成5;

package com.item.action;
public class demo1 {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    int x=5;
    int y=7;
    int c=0;
    c=x;
    x=y;
    y=c;
    System.out.println("x:"+x);
    System.out.println("y:"+y);
  }
}

这个案例我们通过第三方的变量进行交换至。

异或逻辑

异或结果

A 符号 B = result
Flase0 ^ Flase0 = False0
Flase0 ^ True1 = True1
True1 ^ Flase0 = True1
True1 ^ True1 = False0

异或值交换

但是我们还有更先进的方法,我们来通过异或符号来交换一遍:

package com.item.action;
public class demo1 {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    int x = 5; // 二进制:101
    int y = 7; // 二进制:111
    x=x^y;
    y=x^y;
    x=x^y;
    System.out.println("x:"+x);
    System.out.println("y:"+y);
  }
}

结果:

x:7

y:5

拆分过程我们来看看:

int x = 5; // 二进制:101

int y = 7; // 二进制:111

x=x^y;//101^111=010=2

y=x^y;//010^111=101=5

x=x^y;//010^101=111=7

其它位移符号:

下面我们来看一下其它的位移符号:

int x = 5; // 二进制:101

int y = 7; // 二进制:111

System.out.println(x & y); // 101 & 111 = 101 = 5(十进制)

System.out.println(x | y); // 101 | 111 = 111 = 7(十进制)

System.out.println(x ^ y); // 101 ^ 111 = 010 = 2(十进制)

System.out.println(x << 1); // 101 << 1 = 1010 = 10(十进制)

System.out.println(x >> 1); // 101 >> 1 = 010 = 2(十进制)

相关文章
|
8月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
116 0
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
89 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
95 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
99 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
72 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
74 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
101 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
102 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
73 0
|
8月前
|
移动开发 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-998 娜神平衡
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-998 娜神平衡
67 0