前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十四届蓝桥杯集训——JavaC组第九篇——位运算符

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

作者头像
红目香薰
发布2022-12-11 09:32:04
1560
发布2022-12-11 09:32:04
举报
文章被收录于专栏:CSDNToQQCode

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


目录

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

值交换

异或值交换

其它位移符号:


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

我们一个一个的来看。

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

值交换

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

代码语言:javascript
复制
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);
	}

}

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

异或值交换

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

代码语言:javascript
复制
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(十进制)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第十四届蓝桥杯集训——JavaC组第九篇——位运算符
  • 值交换
  • 异或值交换
  • 其它位移符号:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档