首页 > 编程语言 >Java基础09:逻辑运算符、位运算符

Java基础09:逻辑运算符、位运算符

时间:2024-07-28 17:31:45浏览次数:12  
标签:逻辑 0000 运算 09 运算符 && Java true

逻辑运算符

逻辑与:&&和&,逻辑或:||和|,逻辑非:!。
image

public static void main(String[] args) {
	boolean a = true;
	boolean b = false;
	System.out.println("a && b = " + (a&&b)); // false
	System.out.println("a || b = " + (a||b) ); // true
	System.out.println("!(a && b) = " + !(a && b)); // true
}

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。在两个操作数都为
true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断
第二个操作了。
逻辑与只要有一个为false, 则直接返回false。
逻辑或只要有一个为true, 则直接返回true。

public static void main(String[] args){
	int a = 5;//定义一个变量;
	boolean b = (a<4)&&(a++<10);
	System.out.println("使用短路逻辑运算符的结果为"+b);
	System.out.println("a的结果为"+a);
}

解析:该程序使用到了短路逻辑运算符(&&),首先判断 a<4 的结果为 false,则 b 的结果必定是 false,
所以不再执行第二个操作 a++<10 的判断,所以 a 的值为 5。

位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型
(byte)等类型。位运算符作用在所有的位上,并且按位运算。

A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

image

右移一位相当于除2取商。

左移一位相当于乘2。

【常见面试题:int a=2*8怎样运算效率最快?】

解析:

public static void main(String[] args) {
	System.out.println(2 << 3);
}

用移位运算 int a=2<<3;
a就是2乘以8 最后结果是16 这是最省内存 最有效率的方法
这个方法确实高效率的。我来解释一下:
2的二进制是10 在32位存储器里面是0000 0000 0000 0010
左移三位后变成 0000 0000 0001 0000 也就是16
解释一下,在系统中运算是以二进制的形式进行的。相比来说俩个二进制数相乘运算比移位运算慢一
些。
位操作是程序设计中对位模式按位或二进制数的一元和二元操作。 在许多古老的微处理器上, 位运算比
加减运算略快, 通常位运算比乘除法运算要快很多。 在现代架构中, 情况并非如此:位运算的运算速度
通常与加法运算相同(仍然快于乘法运算). 详细的内容需要了解计算机的组成原理!

标签:逻辑,0000,运算,09,运算符,&&,Java,true
From: https://www.cnblogs.com/Konon/p/18328508

相关文章

  • django学习入门系列之第五点《javascript的条件语句和函数》
    文章目录5.6条件语句5.7函数往期回顾5.6条件语句if(){}elseif(){}5.7函数#python中函数定义的格式deffunc{函数的内容}#使用函数func()//javascript函数中的内容functionfunc(){函数的内容}//使用函数func()往......
  • Java基础07:基本运算符
    运算符运算符operatorJava语言支持如下运算符:算术运算符:+,-,*,/,%,++,--赋值运算符=关系运算符:>,<,>=,<=,==,!=instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(了解!!!)条件运算符?:扩展赋值运算符:+=,-=,*=,/=二元运算符publicstaticvoidmain(Str......
  • Java基础08:自增自减运算符,初识Math类
    一元运算符自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数,分为前缀和后缀两种。publicstaticvoidmain(String[]args){ inta=3; intb=a++;//执行完后,b=3。先给b赋值,再自增。 intc=++a;//执......
  • java使用google开源工具Thumbnailator实现图片压缩
    Thumbnailator,一款google使用的开源的图片压缩工具类。github地址:https://github.com/coobird/thumbnailator优点:1、压缩程度可控制,想压缩成多小就多小。2、压缩之后图片尽可能的不失真。3、压缩速度要快。4、代码简单,依赖较少。5、可以实现对图片到编辑,如如旋转,裁切,加......
  • Java
    Java入门IDEA优化idea插件翻译、阿里巴巴代码规范指导IDEAdebug使用Stepinto:单步执行(一行一行代码执行),如果遇到子函数,就会进入子函数,并且继续单步执行。就是每一行需要执行的代码都不跳过,一行一行进行。Stepover:在单步执行的时候,如果遇到子函数,并不会进入子函数,而是......
  • java的几种算法结构
    顺序结构1.java的最基本的结构就是顺序结构除非特别指明,否则就按照顺序一句一句执行2.顺序结构是最简单的算法结构3.语句与语句之间.框与框之间是按从上到下的顺序进行的,他是由若干个依次执行的处理步骤组成的,它是任何算法的离不开的一种基本算法结构选择结构if单选择结构......
  • codeforces 1209E1 Rotate Columns (easy version)
    codeforces1209E1RotateColumns(easyversion)题目传送门:codeforcces,luogu思路贪心,暴力搜索贪心对于所有列,只有列中最大值在所有列的最大值中前\(n\)大才可能对答案有贡献。证明:若有非前\(n\)大的列对某行最大值产生了贡献,则用没有被取的前\(n\)大的列代替该行......
  • 在Windows使用Java编译工具
    文章目录创建java文件编译Java文件运行Java文件创建java文件桌面右键->新建->文本文档双击打开输入publicclassHello{publicstaticvoidmain(String[]args){ System.out.println("HelloWorld!"); }}将文件名改为hello后缀.java编译Java文......
  • JAVA 实现 - 哈希表
    哈希算法String.hashCodepublicstaticvoidmain(String[]args){Stringstr1="abc";Stringstr2="bca";inthash=0;for(inti=0;i<str2.length();i++){charc=str1.charAt(i);System.out.pr......
  • Java 多线程技术详解
    文章目录Java多线程技术详解目录引言多线程的概念为什么使用多线程?多线程的特征多线程的挑战多线程的实现方式3.1继承`Thread`类示例代码:3.2实现`Runnable`接口示例代码:3.3使用`Executor`框架示例代码:3.4使用`Callable`和`Future`示例代码:线程的生命......