Java位运算和逻辑运算的区别实例

复制代码 代码如下:

public class Test {
public static void main(String[] args) {
// 逻辑运算符执行的是短路求值,当左边操作数可以推断出表达式的值,就不再执行 了
int x, y = 10;
if (((x = 0) == 0) || ((y = 20) == 20)) {
System.out.println(y);// 输出10
}
// 位操作运算不管值是如何,任何参与运算的表达式都会被执行求值
int a, b = 10;
if (((a = 0) == 0) | ((b = 20) == 20)) {
System.out.println(b);// 输出20
}
}
}

时间: 2013-02-25

一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意: (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量 (也就是左右两边的值

java按位与可以计算对错吗_java按位与可以计算对错吗

面试中有一道笔试题,大概意思如下: 输入一个集合,输出这个集合的所有子集.例如输入:1,2,4 输出结果如下所示: [1] [2] [4] [1, 2] [1, 4] [2, 4] [1, 2, 4] 需要认识的:空集是任何集合的子集:真子集为不包含子集的集合:非空真子集即不包含子集与空集合 解题思路: 这道题可以使用"按位对应法"进行计算 如集合A={a,b,c},对于任意一个元素,在每个子集中,要么存在,要么不存在. 映射为子集: (a,b,c) (1,1,1)->(a,b,

java按位与可以计算对错吗_java按位与可以计算对错吗

创建一个类,通过位运算中的"^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,再与那个指定的值进行异或运算,实现把加密后的字符串还原为原有字符串的值. 复制代码 代码如下: import java.util.Scanner;public class Example {    public static void main(String[] args) {        Scanner sc

java按位与可以计算对错吗_java按位与可以计算对错吗

Java没有自带的求一个集合的所有子集的方法,我们可以通过集合的子集规律来求. 一个集合的所有子集等于2^该集合的长度.比如{c,b,a}的长度为3,这个集合的子集就有8个. 这句话看起来很简单,但同时也隐含着高深的哲理.其实一个集合的所有集合,和2^该集合的长度这个数字有关.比如上面的例子,{c,b,a}的长度为3,则可以用0-7表示其所有子集.如下所示,改数字所对应的位置为1,则说明我需要这个数字形成子集.从0-7的二进制表示,刚好代表完,一个长度为3,子集个数为8的所有子集. 0(000)

复制代码 代码如下: public class Test {     public static void main(String[] args) {         // 1.左移( << )         // 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0://         // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20         System.out.pri

我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public. Hibernate是如何实现该功能的呢?答案是利用JAVA的反射机制,如下: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectDemo {

首先是网上大神给的类 package com.duanlian.daimengmusic.utils; public final class Base64Util { private static final int BASELENGTH = 128; private static final int LOOKUPLENGTH = 64; private static final int TWENTYFOURBITGROUP = 24; private static final int EIGH

java按位与可以计算对错吗_java_04

mysql有个字段是bit,只存储1和0,是二进制存储,那么在java的dao层如何映射成boolean呢 @Column(name="is_standard") private boolean isStandard; public void setIsStandard(boolean isStandard){ this.isStandard = isStandard; } public boolean getIsStandard(){ return isStandard; } 其实就

java按位与可以计算对错吗_位运算_05

java中 Set与Map排序输出到Writer详解及实例 一般来说java.util.Set,java.util.Map输出的内容的顺序并不是按key的顺序排列的,但是java.util.TreeMap,java.util.TreeSet的实现却可以让Map/Set中元素内容以key的顺序排序,所以利用这个特性,可以将Map/Set转为TreeMap,TreeSet然后实现排序输出. 以下是实现的代码片段: /** * 对{@link Map}中元素以key排序后,每行以{key}={val

Spring Boot+Socket实现与html页面的长连接,客户端给服务器端发消息,服务器给客户端轮询发送消息,附案例源码 功能介绍 客户端给所有在线用户发送消息客户端给指定在线用户发送消息服务器给客户端发送消息(轮询方式) 注意:socket只是实现一些简单的功能,具体的还需根据自身情况,代码稍微改造下 项目搭建 项目结构图 pom.xml <?xml version="1.0" encoding="UTF-8"?>

第一行

第二行

静态加载: package com.imooc.加载类; public class Office_Static { public static void main(String[] args) { //new 创建对象,是静态加载类,在编译时刻就需要加载所有的可能使用到的类 if("Word".equals(args[0])){ Word w = new Word(); w.start(); } if("Excel".equals(args[0])){ Excel

我们可能很少在编程中用位运算,如果没深入学习,可能也很难理解.平时的数值运算,其实是要先转换成二进制再进行运算的,而位运算就是直接进行二进制运算,所以位运算的执行效率肯定是更高的.下面通过一些实例来加深对位运算的理解. 按位与(&) &&运算符我们都知道,只有两个都为真,结果才为真.&道理是一样的,只有两个数的值为1时,才返回1.例如1和3的按位与操作: 0001 &  0011   ---------     0001 只有对应的数为1时,结果才为1,其他都为0.