或且非 java_Java的运算符号(逻辑与、或、非、移位运算)
1.只可将AND,OR 或NOT 应用于布尔值。与在C 及C++中不同,不可将一个非布尔值当作布尔值在逻辑表达式中使用。
2.在AND(&&)运算中a()&&b()&&c(),当a为false时,b与c都不再执行,因为整个表达式都是false了,没必要再执行下去,OR(||)也是一样,当有一个为true时就结束。
1234567891011public class CalClass { static Boolean test(int num){ System.out.println(num+'>2'+(num>2)); return num>2; } public static void main(String[] args){ int i = 1, j =3 , k = 4; System.out.println(test(i)||test(j)||test(k)); System.out.println('end'); }}
3.对于布尔值,按位运算符(如&)具有与逻辑运算符(如&&)相同的效果,只是它们不会中途“短路”。
移位运算符
左移位运算符(<>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java 也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。
若对char,byte 或者short 进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会用到。这样可防止我们在一个 int数里移动不切实际的位数。若对一个long 值进行处理,最后得到的结果也是long。此时只会用到右侧的 6个低位,防止移动超过 long 值里现成的位数。但在进行“无符号”右移位时,也可能遇到一个问题。若对 byte 或short 值进行右移位运算,得到的可能不是正确的结果(Java 1.0 和Java 1.1 特别突出)。它们会自动转换成int 类型,并进行右移位。但“零扩展”不会发生。
http://www.blogjava.net/rosen/archive/2005/08/12/9955.html
“>> 右移”;“<< 左移”;“>>> 无符号右移”
例子:
例子:
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1111 1111
其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。
-5<<3=-40
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1101 1000
其结果与 -5*2*2*2 完全相同。
-5>>>3=536870911
1111 1111 1111 1111 1111 1111 1111 1011
0001 1111 1111 1111 1111 1111 1111 1111
或且非 java_Java的运算符号(逻辑与、或、非、移位运算)相关推荐
- ()逻辑与、()按位与运算、(||)逻辑或、(|)按位或运算
&& 表示逻辑与,即and,当符号(&&)两边的结果都为真时,整个运算结果为真,如果有一边为假则结果为假. 通常表示为: if(条件1 && 条件2). ...
- OCaml入门(一)——OCaml中的基本数据类型、运算符号、表达式和函数
目录 1.函数式编程(Functional Programming/FP) 2.OCaml中的基本数据类型(Basic Data Type) 3.运算符号(Operator) 3.1算术运算符 3.2 ...
- java符号位_java 位运算符号
<道生一,一生二,二生三,三生万物>出自老子的<道德经>第四十二章.主要讲述了一.二.三这几个数字,并不把一.二.三看作具体的事物和具体数量.它们只是表示"道&quo ...
- java中的运算符号理解:-=,*=,/=
java中的运算符号:-=,*=,/= 第一个 -= 运算符号: 代表自身减去等号右边的值 举例:int i = 8 i-=6+1 等价于 i = 8-(6+1) 第二个 =预算符号: 代表自身乘以等 ...
- Java二进制位运算、移位运算、、
为什么80%的码农都做不了架构师?>>> Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...
- 2.2.2 定点数的移位运算
XYXZNB(*^ワ^*)*\(^o^)/* 我们已经知道了定点数在计算机内部如何表示分为无符号数和有符号数啊,其中有负号数可以用元码补码,反码和移码这样的4种方式来表示,那么从这个小节开始,我们要学 ...
- 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)
在上一篇中,我们学习到了计算机底层的一些机器码,以及一些行业标准,这一章,我们将接着学习机器码的一些比较与相关计算. 一.浮点数表示和定点数的比较 ① 当字长相同时,浮点数表示的范围要大得多. ②浮点 ...
- c 语言运算符号大全,c语言运算符号详细说明
C语言中具有右结合性的运算符包括所有单目运算符以及赋值运算符(=)和条件运算符.其它都是左结合性. 判断表达式计算顺序时,先按优先级高的先计算,优先级低的后计算,当优先级相同时再按结合性,或从左至右顺 ...
- [shell]shell 中| || () {} 用法以及shell的逻辑与或非
转自:https://www.jianshu.com/p/617c1ee1e46e | 运算符 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: comman ...
- c语言编程中的或逻辑的符号 符号如何输入,C语言中逻辑运算符(,||,!)和位运算符号(,|,^)...
1. C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别 在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^).第 ...
最新文章
- tensorflow2.0 基础一 常用数据类型及转换
- 【嵌入式】C语言高级编程-强符号和弱符号(09)
- 装饰一个类及内部方法
- 环信SDK 踩坑记webIM篇(三)
- 谁说IT男没有审美?怀揣5000元巨款,我们这样改变生活
- KORG Polysix for mac(四VCO单声道/多声道合成器)
- 邮局用计算机对信件进行自动分拣,计算机组成结构习题集
- python培训学堂怎么样_如何评价开智学堂开设的课程?
- vector初始化必须设置大小么_C++ 序列式容器之vector
- 情商高手比智商高手要可怕多了
- pdo_mysql扩展库_MySQL数据库之PDO扩展
- 计算机管理中其它设备问号,Win10设备管理器中设备上有白色问号如何解决
- 千图成像(用图片拼图片)的java教程
- matlab 增量学习,支持向量机在线增量学习算法的MATLAB实现
- Android系统分区备份与还原
- 陕西万德软件有限公司
- 音视频开发之旅(34) - 基于FFmpeg实现简单的视频解码器
- 选购电脑cpu 酷睿 区别 GPU选择
- 一次弄懂Event Loop(彻底解决此类面试问题)
- CHAPTER 18 Semantic Role Labeling