Java 中 & | ^ 运算符的简单使用
背景
今天碰到了代码中的按位与运算,复习一下,先列一个各个进制数据表。

顺便复习一下十进制转二进制的计算方式:

接下来解释下这三个运算符:
& 按位与,都转为二进制的情况下,同为1则为1,否则为0。
| 按位或,都转为二进制的情况下,同为0则为0,否则为1。
^ 按位异或,都转为二进制的情况下,相同为0,不同为1。
示例一
比如有两个数
int x = 5;
int y = 11;
在Java代码中做一个计算
System.out.println(x|y);
System.out.println(x&y);
System.out.println(x^y);
计算结果是15, 1 ,14
计算过程分析,都转为二进制进行计算。
x=5 (0101二进制)
y=11(1011二进制)
x|y = 1111 = 15
x&y = 0001 = 1
x^y = 1110 =14
示例二
下面是 java 代码中的一个 if 语句的判断条件:
(8 & 0x10) == 0
这个结果为true,我们来分析一下,这是个按位与运算,都转为二进制的情况下,同为1则为1,否则为0。
十进制数8对应的二进制为1000,十六进制数0x10对应的十进制应该是16,对应的二进制应该是10000。
所以,是对1000和10000这两个二进制数进行按位与运算,同为1则为1,否则为0,计算得到00000,也就是十进制的0。
Java 中 & | ^ 运算符的简单使用的更多相关文章
- 多线程(三) java中线程的简单使用
java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依 ...
- java中数据流的简单介绍
java中的I/O操作主要是基于数据流进行操作的,数据流表示了字符或者字节的流动序列. java.io是数据流操作的主要软件包 java.nio是对块传输进行的支持 数据流基本概念 “流是磁盘或其它外 ...
- java中volatile的简单理解
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7833881.html 据说,volatile是java语言中最轻量级的并发控制方式. vo ...
- 关于JAVA中异常处理的简单阐释.
---恢复内容开始--- 这是我的一篇要在博客园发布的随笔,主要是简单的概括一下我本次所学的关于异常处理的知识.有讲的不妥当的地方,或者有需要补充的,还请各位高人给指点,共同学习,虚心求学.谢谢啦~ ...
- redis学习笔记(二)——java中jedis的简单使用
redis怎么在java中使用,那就是要用到jedis了,jedis是redis的java版本的客户端实现,原本原本想上来就直接学spring整合redis的,但是一口吃个胖子,还是脚踏实地,从基础开 ...
- Java 中的instanceof简单讲解
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...
- JAVA中JNI的简单使用
了解JNI:JAVA因其跨平台特性而受人们喜爱,也正因此,使得它和本机各种内部联系变得很少,所以JNI(Java Native Interface)就是用来解决JAVA本地操作的一种方式.JAVA通过 ...
- java中接口的简单运用&java中的一些异常(运用myeclipse)
package test;//创建一个名为test的包 public class A4paper implements Paper { public String getSize(){ return& ...
- java中序列化的简单认识
一.什么是序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长.但在现实应用中,就可 ...
- Java中NIO的简单介绍
NIO基本介绍 Java NIO(New IO) 也有人称之为Java non-blocking IO 是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API.NIO与原来的 ...
随机推荐
- 基于windows平台搭建elasticsearch
部署准备 elasticsearch-6.0.1.zip--https://www.elastic.co/downloads/elasticsearch elasticsearch-head-mast ...
- tcp中delay_ack的理解
内核版本,3.10. 首先,我们需要知道,在一个sock中,维护ack的就有很多变量,多种状态: struct inet_connection_sock { .... __u8 icsk_ca_sta ...
- 作业注释 CSS表单1 输入框前有图片
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- R语言-简单模型画图
1.回归拟合 > plot(mtcars$mpg~mtcars$disp) > lmfit<-lm(mtcars$mpg~mtcars$disp) #线性回归模型 > abli ...
- html----input标签
HTML 5 <input> 标签 定义和用法 <input> 标签规定用户可输入数据的输入字段. 根据不同的 type 属性,输入字段有多种形态.输入字段可以是文本字段.复选 ...
- Centos7安装部署Zabbix3.4
1.关闭selinux和firewall 1.1检测selinux是否关闭 [root@localhost ~]# getenforce Disabled ...
- java基础 ----- 循环结构
循环的结构特点 : 循环条件 循环操作 ----- while 循环 来个小例子,实现打印50 份shij 1.确定循环条件和循环操作 2.套用while语法写出代码 3.检查循环能 ...
- squid代理允许FTP访问设置
# TAG: acl # Defining an Access List ============================= #Default: # acl all src all # #Re ...
- linux resin 基本站点配置
进入配置文件目录: [root@linuxidc resin-]# cd /usr/local/resin/conf/ 查看都有哪些配置文件: [root@linuxidc conf]# ls app ...
- boost的下载和安装(windows版)
1 简介 boost是一个准C++标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化. boost主要包含以下几个大类: 字符串及文本处理.容器.迭代器(it ...